【问题标题】:android edittext autorize width if text is long如果文本很长,android edittext 会自动调整宽度
【发布时间】:2012-06-03 01:58:10
【问题描述】:

在我的应用程序中,我有六个编辑文本。我将它们分组为两个线性布局,线性布局中的 3 个。 它应该看起来像这样:

|EditText1|EditText4|

|EditText2|EditText5|

|EditText3|EditText6|

我要编辑的文本总是相同的大小。 当用户开始在字段中键入内容时,就会出现问题。如果文本太长...编辑是文本正在调整大小。有焦点的变大,同一横排的变小。

如何预防? 我想编辑文本保持相同大小...如果文本太长...我只需要滚动它并跟随文本光标。

如何做到这一点?天呐!

这里有一些代码:

 <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="3" >

        <EditText
            android:id="@+id/blackPlayerName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:background="@drawable/black_name_selector"
            android:hint="@string/black"
            android:inputType="textPersonName"
            android:maxLength="12"
            android:singleLine="true"
            android:textColor="@drawable/player_name_textcolor"
            android:textColorHint="@drawable/player_name_textcolor" />

        <EditText
            android:id="@+id/redPlayerName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:background="@drawable/red_name_selector"
            android:hint="@string/red"
            android:inputType="textPersonName"
            android:maxLength="12"
            android:singleLine="true"
            android:textColor="@drawable/player_name_textcolor"
            android:textColorHint="@drawable/player_name_textcolor" />

        <EditText
            android:id="@+id/whitePlayerName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:background="@drawable/white_name_selector"
            android:hint="@string/white"
            android:inputType="textPersonName"
            android:maxLength="12"
            android:singleLine="true"
            android:textColor="@color/black"
            android:textColorHint="@color/black" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="3" >

        <EditText
            android:id="@+id/bluePlayerName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:background="@drawable/blue_name_selector"
            android:hint="@string/blue"
            android:inputType="textPersonName"
            android:maxLength="12"
            android:singleLine="true"
            android:textColor="@drawable/player_name_textcolor"
            android:textColorHint="@drawable/player_name_textcolor" />

        <EditText
            android:id="@+id/greenPlayerName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:background="@drawable/green_name_selector"
            android:hint="@string/green"
            android:inputType="textPersonName"
            android:maxLength="12"
            android:singleLine="true"
            android:textColor="@drawable/player_name_textcolor"
            android:textColorHint="@drawable/player_name_textcolor" />

        <EditText
            android:id="@+id/yellowPlayerName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:background="@drawable/yellow_name_selector"
            android:hint="@string/yellow"
            android:inputType="textPersonName"
            android:maxLength="12"
            android:singleLine="true"
            android:textColor="@color/black"
            android:textColorHint="@color/black" />
    </LinearLayout>
</LinearLayout>

【问题讨论】:

    标签: android android-edittext resize


    【解决方案1】:

    对于每个编辑文本,将它们的 layout_width 设置为 0dp,将 layout_weight 设置为 1

    <EditText
        android:layout_width="0dp"
        android:layout_weight="1"
        ... />
    

    【讨论】:

    • 起初这不起作用。但是后来我用 2 个编辑文本制作了 3 个水平线性布局,然后它就起作用了。 tnx
    【解决方案2】:

    尝试使用TableLayout

    <TableLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    
        <TableRow>
            <EditText ...>
            <EditText ...>
            <EditText ...>
        </TableRow>
    
        <TableRow>
            <EditText ...>
            <EditText ...>
            <EditText ...>
        </TableRow>
    </TableLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多