这是我的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" >
</ListView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="end"
>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.73"
android:ems="10" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/enviar" />
</LinearLayout>
我不喜欢跑步。我需要列表视图具有静态大小:所有屏幕 - 其余对象。我需要列表视图位于顶部。
问题是如果我把android:layout_height =“match_parent”列表视图的大小全部都是屏幕。如果我把android:layout_height =“wrap_content”的大小变量,当我有很多元素时,其余的对象都不可见。
我需要列表视图下方的对象始终可见。有些像whatsapp对话屏幕。你了解我吗?抱歉我的英语不好:)
答案 0 :(得分:1)
您可以拥有RelativeLayout。将LinearLayout放在底部。将listview放在LinearLayout上方。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout // this can be vartical or horizontal orientation depending on your need
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:orientation="horizontal" >
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="enviar" />
</LinearLayout>
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/linearLayout1"
android:layout_centerHorizontal="true" >
</ListView>
</RelativeLayout>
或使用单个RelativeLayout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Button" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:ems="10" >
<requestFocus />
</EditText>
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/editText1"
android:layout_alignEnd="@+id/button1"
android:layout_alignParentRight="true" >
</ListView>
</RelativeLayout>
答案 1 :(得分:0)
我建议使用包含列表视图和按钮的相对布局。设置其布局权重属性,以便它们占用屏幕。例如,一个对象上的1和另一个对象上的7的布局权重使得一个占据屏幕的7/8而另一个占用1/8。如果您需要能够查看更多列表视图,请将其放在滚动视图中。