如上面的屏幕截图所示,EditText超出了它的父级,如何防止这种情况发生?
在我的聊天活动中,我使用ListView来显示消息,每条消息都是一个列表项
这是xml文件:
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/form"
android:layout_below="@+id/header"
android:divider="@null"
android:dividerHeight="0dp"
android:padding="5dp" >
</ListView>
并列出项目:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/avatarLeft"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/border"
android:contentDescription="@string/empty_string"
android:src="@drawable/icon_default_avatar"
android:visibility="gone" /> this will be adjusted programmatically
<TextView
android:id="@+id/comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" this will be adjusted programmatically
android:layout_margin="5dp"
android:background="@drawable/none" this will be adjusted programmatically
android:ellipsize="none"
android:paddingLeft="10dp"
android:singleLine="false"
android:text=""
android:textColor="@android:color/primary_text_light" />
<ImageView
android:id="@+id/avatarRight"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/border"
android:contentDescription="@string/empty_string"
android:src="@drawable/icon_default_avatar"
android:visibility="gone" /> this will be adjusted programmatically
</LinearLayout>
答案 0 :(得分:1)
您为textview width提供了wrap_content,导致此问题。最好是在那里使用相对布局而不是线性布局。
但是如果你想使用LinearLayout只使用匹配父项而不是给出填充,请使用margin_left,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/comment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" this will be adjusted programmatically
android:layout_margin="5dp"
android:background="@drawable/none" this will be adjusted programmatically
android:ellipsize="none"
android:singleLine="false"
android:text=""
android:textColor="@android:color/primary_text_light" />
</LinearLayout>