我有一个EditText,我想填充所有可用的水平宽度,但宽度不应大于200dp
这使得EditText适应任何屏幕尺寸,并且仍然可以在大屏幕上看起来很好(水平拉伸在大屏幕上看起来不太好)。
如何在Android中执行此操作?
我看到maxWidth=200dp
和layoutWidth=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" />
如果maxWidth
和layoutWidth=fill_parent
无法合作,那么maxWidth
的含义是什么?
换句话说,如果EditBox没有动态更改其宽度,那么您需要maxWidth
为什么?
答案 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对象行的宽度越小。