15

我有一个 EditText,我想填充所有可用的水平宽度,但宽度不应大于 200dp

这使得 EditText 可以适应任何屏幕尺寸,并且仍然使它在大屏幕上看起来不错(水平拉伸在大屏幕上看起来不太好)。

如何在 Android 中做到这一点?

我看到了maxWidth=200dplayoutWidth=fill_parent但不一起工作:

 <EditText android:id="@+id/oldpassword"
           android:hint="@string/youroldpassword"
           android:inputType="textpassword"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:maxWidth="250dp" />

如果maxWidthlayoutWidth=fill_parent不一起工作,那maxWidth意味着什么?

换句话说,如果 EditBox 不动态改变它的宽度,那么你需要maxWidth什么?

4

6 回答 6

4

您可以根据设备屏幕尺寸以编程方式设置宽度。喜欢

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
EditText et = (EditText)findViewById(R.id.editText);
if(width > 200)
{
    et.setWidth(200);
}
else
{
    et.setWidth(width);
}
于 2013-09-18T07:36:14.737 回答
2

我有解决方案,看看你是否设置android:layout_width="fill_parent"它总是有它的宽度,它有父级但是当你设置android:layout_width="wrap_content"它时,当你在 EditText 中输入文本时,它会随着内容增加大小宽度,现在如果你使用android:maxWidth="250dp"android:layout_width="wrap_content",它的宽度会增加到 250dp 而在 EditText 中输入值

利用

<EditText android:id="@+id/oldpassword"
       android:hint="@string/youroldpassword"
       android:inputType="textpassword"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:maxWidth="250dp" />`

或使用

<EditText android:id="@+id/oldpassword"
       android:hint="@string/youroldpassword"
       android:inputType="textpassword"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>
于 2013-09-18T09:13:47.043 回答
1

在布局中删除 maxWidth=200dp

于 2013-09-18T07:28:17.507 回答
1

您可以将编辑文本包装到相对布局。这是您可以执行的操作 -:

<RelativeLayout
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/oldpassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxWidth="250dp"
        android:maxLines="1"
        />
</RelativeLayout>
于 2013-09-18T07:48:01.153 回答
-1

您可以将editText 包装在布局中(宽度为200dp)并将editText 设置为match_parent。

于 2013-09-18T07:33:12.677 回答
-3

我使用android:layout_marginRight="300dp"解决了这个问题,这个值越大,EditText 对象的线的宽度就越小。

于 2015-09-23T09:58:01.963 回答