在使用EditText的时候如果没有规定控件的最大宽度,输入的文字超出了EditText的高度的话,EditText会被挤出屏幕外。
原来的xml文件是这样写的:
此处EditText的宽度为fill_parent,会如图所示,超出屏幕。设置了android:singleLine="false"也是没有用的。
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:orientation="horizontal">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.05"
android:text="描述 : "
android:textSize="16sp"
android:textColor="@color/gray_public_text"/>
<EditText
android:id="@+id/et_public_detail"
android:layout_width="fill_parent"
android:minHeight="100dip"
android:layout_weight="0.95"
android:gravity="top"
android:hint="请输入详细信息"
android:textSize="16sp"/>
</TableRow>
将EditText的width属性改为0dp,可以设置一下minheight,这样EditText就不会超出屏幕了。
(要是设置了 android:inputType="text" 后,一定要设置 android:singleLine="false")设置了这两个后,EditText的宽度不会超出屏幕,不过所有文字都会显示在同一行,换不了行。
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:orientation="horizontal">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.05"
android:text="描述 : "
android:textSize="16sp"
android:textColor="@color/gray_public_text"/>
<EditText
android:id="@+id/et_public_detail"
android:layout_width="0dp"
android:minHeight="300dip"
android:layout_weight="0.95"
android:gravity="top"
android:hint="请输入详细信息"
android:textSize="16sp"/>
</TableRow>