发布
社区首页 >问答首页 >如何防止编辑文本的宽度随输入文本的大小而改变?

如何防止编辑文本的宽度随输入文本的大小而改变?
EN

Stack Overflow用户
提问于 2017-07-21 20:49:43
回答 2查看 922关注 0票数 0

我有两个EditText,如下:

代码语言:javascript
代码运行次数:0
复制
<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:weightSum="1"
            android:orientation="horizontal">
            <EditText
                android:id="@+id/edtTxtNameReg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:layout_weight="0.5"
                android:hint="Name"/>
            <EditText
                android:id="@+id/edtTxtSurNameReg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:layout_weight="0.5"
                android:hint="Surname"/>
        </LinearLayout>

在我用edtTxtNameReg编写时,它的宽度增加了,而edtTxtSurNameReg的宽度减小了。

是否有一种方法可以保持edtTxtNameReg宽度不变,文本向左滚动?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-21 20:56:25

同时对android:layout_width="0dp"使用EditText,宽度不会随内容而变化

对于LinearLayout,当使用android:layout_weight时,水平方向的宽度或垂直方向的高度必须是="0dp"

票数 3
EN

Stack Overflow用户

发布于 2017-07-21 21:49:56

Tonteria24说的大多数都是正确的,但这部分不正确:

对于LinearLayout,当使用android:layout_weight时,水平方向的宽度或垂直方向的高度必须是="0dp"

layout_weightLinearLayout中的工作方式是:

  1. 每个孩子都能得到它想要的空间
  2. 额外的空间是根据每个孩子的重量比来划分的。

LinearLayout中的所有视图赋予0dp大小和等权值是非常常见的,或者给出一个视图的0dp大小和1权重。这是有意义的,因为它基本上跳过了我上面的第一点(孩子要求的是0宽或高),然后平均地划分空间。

然而,将wrap_contentlayout_weight结合起来是完全有效的。

但是,它会导致不同的行为。首先,LinearLayout将给第一个EditText足够的宽度来包装它的内容,然后它将(尝试)给第二个EditText足够的宽度来包装它的内容,然后它将在这两个视图之间划分任何额外的空间。

结果是什么呢?随着第一个EditText内容的宽度增加,用于分隔的“额外”空间会缩小。如果输入足够多的文本,第一个EditText最终会增长到填充整个LinearLayout

这就是为什么将其宽度设置为0dp为您解决这个问题的原因。它阻止了日益增长的行为。但是,可能会有另一次您想要同时使用wrap_contentlayout_weight的时候,这是非常好的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45246513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档