如何设置editView最小宽度? (安卓 2.2)

Posted

技术标签:

【中文标题】如何设置editView最小宽度? (安卓 2.2)【英文标题】:How to set editView minimum Width? (Android 2.2) 【发布时间】:2013-01-23 06:10:31 【问题描述】:

我有一个包含两个 tableRows 的表格,每个表格包含四个视图:texView、Spinner、editView 和 texView。

当微调器的其中一个子项的内容不适合时,它会被自动剪切,这很好。但是我希望它旁边的 editView 保持最小宽度为 40dp。现在 textViews 的宽度被保留,但 editView 宽度没有。我怎样才能做到这一点(如果不是像我现在尝试的那样设置宽度和/或最小宽度,请参阅 xml 文件)?

直到这个孩子的长度都很好:

现在不太好:

这是布局文件:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:ignore="InefficientWeight" >

    <TableLayout
        android:layout_
        android:layout_ >

        <TextView
            android:id="@+id/textView3"
            android:layout_
            android:layout_
            android:paddingLeft="10dp"
            android:text="Worp "
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_
            android:layout_ >

            <TextView
                android:id="@+id/textView1"
                android:layout_
                android:layout_
                android:paddingLeft="10dp"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <Spinner
                android:id="@+id/spinner1"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:drawSelectorOnTop="true"
                android:tag="SP1" />

            <EditText
                android:id="@+id/editText1"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:ems="10"
                android:inputType="phone"
                android:minWidth="40dp" />

            <TextView
                android:id="@+id/textView4"
                android:layout_
                android:layout_
                android:gravity="center_horizontal"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_
            android:layout_ >

            <TextView
                android:id="@+id/textView2"
                android:layout_
                android:layout_
                android:paddingLeft="10dp"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <Spinner
                android:id="@+id/spinner2"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:drawSelectorOnTop="true"
                android:tag="SP2" />

            <EditText
                android:id="@+id/editText2"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:ems="10"
                android:inputType="phone"
                android:minWidth="40dp" >

                <requestFocus />
            </EditText>

            <TextView
                android:id="@+id/textView5"
                android:layout_
                android:layout_
                android:gravity="center_horizontal"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_
            android:layout_ >
        </TableRow>

        <TableRow
            android:id="@+id/tableRow4"
            android:layout_
            android:layout_ >
        </TableRow>
    </TableLayout>

</ScrollView>

【问题讨论】:

【参考方案1】:

似乎由于 wrap_content 属性,您的表格列的宽度正在发生变化。尝试将表格行的属性从 wrap_content 更改为 match_parent 或尝试使用 weightSum。

【讨论】:

以上是关于如何设置editView最小宽度? (安卓 2.2)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GtkScrollbar 上设置最小宽度?

如何设置 select2 下拉菜单的最小宽度和最大宽度?

css如何设置最小宽度是屏幕宽度 => style="min-width: 屏幕宽度">

如何为 QFormLayout 的第一列设置最小宽度?

EditView 输入限制(软键盘限制)

【PyQt】网格布局 QGridLayout