我正在为聊天应用编写代码。我决定将消息放在ListView中,然后使用textView让我的用户输入他想要发送的消息。 问题是我的ListView覆盖整个屏幕,即使它只包含2/3个元素,就像调试一样。在我的Android工作室设计平底锅中,我看到了TextBox,但是,当我尝试在物理设备(在这种情况下,一个10英寸的三星平板电脑)上启动时,TextBox不存在。
这是我的xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_messages"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/list_messages" >
<EditText android:id="@+id/id_edit_text_message"
android:inputType="textMultiLine"
android:text="Message"
android:ems="10"
android:layout_width="wrap_content"
android:layout_height="48dip"
android:layout_weight="10" />
<Button
android:layout_width="wrap_content"
android:layout_height="48dip"
android:text="Send"
android:layout_weight="1"/>
</LinearLayout></LinearLayout>
这是我的ListView元素,如果重要的话......
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:id="@+id/list_item_message" />
答案 0 :(得分:0)
使用RelativeLayout
作为根元素。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_above="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_messages"/>
<LinearLayout
android:layout_alignParentBottom="true"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText android:id="@+id/id_edit_text_message"
android:inputType="textMultiLine"
android:text="Message"
android:ems="10"
android:layout_width="wrap_content"
android:layout_height="48dip"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="48dip"
android:text="Send"/>
</LinearLayout>
</RelativeLayout>
结果:
答案 1 :(得分:0)
你可以使用这种方法
XML文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/list_messages"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/list_messages" >
<EditText android:id="@+id/id_edit_text_message"
android:inputType="textMultiLine"
android:text="Message"
android:ems="10"
android:layout_width="wrap_content"
android:layout_height="48dip"
android:layout_weight="10" />
<Button
android:layout_width="wrap_content"
android:layout_height="48dip"
android:text="Send"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
这是来自Android Studio Layout设计:
这是来自设备nexus 7平板电脑: