如何创建动态固定宽度的EditText

时间:2014-11-03 21:28:43

标签: android xml android-layout android-edittext

我正在开发一个我的xml看起来有点像这样的应用程序:

<TableRow
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/receiver_name"
        android:layout_weight="1" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:maxLength="30"
        android:maxLines="1" />

</TableRow>

我想要的是,无论您拥有什么设备,TextView都应占宽度的1/4,而EditText应占宽度的3/4。

就像现在一样,代码可以工作 - 直到你开始输入。随着您输入的内容越来越多,EditText越来越宽。如何使我的EditText保持与layout_weight参数分配给它的宽度相同?

2 个答案:

答案 0 :(得分:1)

你应该像这样使用LinearLayout:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent">

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="@string/receiver_name"
    android:layout_weight="1" />
<EditText
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="3"
    android:maxLength="30"
    android:maxLines="1" />

</LinearLayout>

希望能帮助你=)

答案 1 :(得分:1)

就像Janoub所说,你可以使用LinearLayout和权重值。 http://developer.android.com/guide/topics/ui/layout/linear.html 但您也可以使用包含4列的表格布局,以便您的edittext捕获3列,textview 1。 http://www.compiletimeerror.com/2013/07/android-tablelayout-example.html