Android EditText超出了它的父视图组

时间:2013-08-20 13:29:00

标签: android android-layout

snapshot

如上面的屏幕截图所示,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>

1 个答案:

答案 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>