如何将listview的textview和edittext放在布局中

Posted

技术标签:

【中文标题】如何将listview的textview和edittext放在布局中【英文标题】:How to put textview and edittext top of listview in layout 【发布时间】:2012-09-07 11:06:21 【问题描述】:

我尝试将 listview 的 textview 和 edittext 放在布局中,但 listview 没有出现。当我删除这些文本视图和编辑文本时,就会出现列表视图。

这是我的布局 xml:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_
          android:layout_
          android:id="@+id/TestLinearLayout">
         <LinearLayout 
               android:orientation="horizontal"
               android:layout_
               android:layout_
               >
               <TextView  
                     android:layout_ 
                     android:layout_ 
                     android:text="@string/hello"
                     android:id="@+id/text"
               />   
               <EditText  
                     android:layout_ 
                     android:layout_
                     android:id="@+id/editText"
               />   
        </LinearLayout>
        <ListView 
               android:id="@+id/ListView01" 
               android:layout_ 
               android:layout_
               android:layout_weight="1"
              />
</LinearLayout>

【问题讨论】:

使用addHeaderLayout 将标题添加到ListView。查看我的回复。 【参考方案1】:

这样改

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/TestLinearLayout"
 android:layout_
 android:layout_
 android:orientation="vertical" >

<LinearLayout
    android:layout_
    android:layout_
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/text"
        android:layout_
        android:layout_
        android:text="@string/hello" />

    <EditText
        android:id="@+id/editText1"
        android:layout_
        android:layout_
        android:ems="10"
        android:inputType="textNoSuggestions" >

        <requestFocus />
    </EditText>
</LinearLayout>

<ListView
    android:id="@+id/ListView01"
    android:layout_
    android:layout_
    android:layout_weight="1" />

 </LinearLayout>

【讨论】:

非常感谢..你能告诉我这里的有什么用吗? 这个用来防止应用程序启动时出现软键盘。【参考方案2】:

最好使用RelativeLayout,可以指定android:layout_below="@+id/header"

【讨论】:

【参考方案3】:

您还可以向ListView 添加标题视图,这正是您想要的(我认为)See Documentation here.

【讨论】:

【参考方案4】:

列表视图上方的线性布局占据了整个父级,因为您将高度指定为fill_parent 所以,

将第二个线性布局的高度替换为wrap_content

【讨论】:

【参考方案5】:
 <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_
      android:layout_
      android:id="@+id/TestLinearLayout">
     <LinearLayout 
    android:orientation="horizontal"
     android:layout_
     android:layout_
     android:layout_alignParentTop="true"
     android:id="@+id/layout"
     >
     <TextView  
    android:layout_ 
    android:layout_ 
    android:text="@string/hello"
    android:id="@+id/text"
    />   
   <EditText  
    android:layout_ 
    android:layout_
    android:id="@+id/editText"
    />   
    </LinearLayout>
    <ListView 
    android:id="@+id/ListView01" 
    android:layout_ 
    android:layout_
    android:layout_below="@id/layout/>
     </RelativeLayout>

【讨论】:

【参考方案6】:

将第二个线性布局的高度替换为wrap_content

喜欢

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_
          android:layout_
          android:id="@+id/TestLinearLayout">
         <LinearLayout 
               android:orientation="horizontal"
               android:layout_
               android:layout_
               >
               <TextView  
                     android:layout_ 
                     android:layout_ 
                     android:text="@string/hello"
                     android:id="@+id/text"
               />   
               <EditText  
                     android:layout_ 
                     android:layout_
                     android:id="@+id/editText"
               />   
        </LinearLayout>
        <ListView 
               android:id="@+id/ListView01" 
               android:layout_ 
               android:layout_
               android:layout_weight="1"
              />
</LinearLayout>

【讨论】:

【参考方案7】:

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/TestLinearLayout"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/firstlayout"
        android:layout_
        android:layout_
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text"
            android:layout_
            android:layout_
            android:text="@string/hello" />

        <EditText
            android:id="@+id/editText"
            android:layout_below="@+id/text"
            android:layout_
            android:layout_ />
    </RelativeLayout>

    <ListView
        android:id="@+id/ListView01"
        android:layout_below="@+id/firstlayout"
        android:layout_
        android:layout_
        android:layout_weight="1" />

</RelativeLayout>

【讨论】:

以上是关于如何将listview的textview和edittext放在布局中的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从一个 Activity 中的 ListView 传递到另一个 Activity 上的 TextView?

如何将可扩展的 ListView 放入 ScrollView

如何在 ListView 中为 TextView 的背景颜色添加渐变效果?

Android ListView重写BaseAdapter如何改变指定item中的TextView的颜色?

如何将ListView标题放入Android泡泡中

包含 TextView 的 ListView 和包含 EditText 的 ListView 不在同一行