如何使EditText具有最大宽度但仍填充父宽度

时间:2013-09-18 07:25:33

标签: android android-layout

我有一个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为什么?

6 个答案:

答案 0 :(得分:3)

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

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);
}

答案 1 :(得分:1)

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

使用

android:layout_width="wrap_content"

或使用

<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" />`

答案 2 :(得分:0)

删除布局中的maxWidth = 200dp

答案 3 :(得分:0)

您可以将编辑文本换行到相对布局。您可以这样做 - :

<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>

答案 4 :(得分:-1)

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

答案 5 :(得分:-3)

我使用 android:layout_marginRight =&#34; 300dp&#34; 解决了它,此值越大,EditText对象行的宽度越小。