我想设置一个编辑框的最大宽度.所以我创建了这个小布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxWidth="150dp" >
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,无论如何,盒子可能超过150 dp.android:maxWidth="150dp"在EditText意志中会给出相同的结果.我已经阅读(maxWidth不能与fill_parent一起使用)将max-和min宽度设置为相同的大小应解决它:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:maxWidth="50dp"
android:minWidth="50dp" />
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
我在这里找到了解决问题的方法:
在ViewGroup上设置最大宽度
这很好用.但我想这个maxWidth属性就是我的理由.该如何使用?或者有这方面的文件吗?我花了好几个小时来处理这个问题,但仍然不明白如何使用这个简单的属性.
经过大量的谷歌搜索后,我无法找到解决这个问题的方法.我有这个布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/adlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:layout_weight="1"
>
<TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:padding="6dip" android:text="@string/barcode_format" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:padding="6dip" android:layout_width="fill_parent" android:id="@+id/edit_barcode_format" android:layout_height="wrap_content"></EditText>
</TableRow>
<TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:padding="6dip" android:text="@string/barcode_type" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:padding="6dip" android:layout_width="fill_parent" android:id="@+id/edit_barcode_type" android:layout_height="wrap_content"></EditText>
</TableRow>
</TableLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
表格布局定义了一个表格.在手机上看起来不错,但在平板电脑上,edittext视图看起来太大了.我想为布局设置最大宽度,并将窗体绘制为居中.
我正在尝试使我的布局更加横向友好,我有一个常见的模式是添加LinearLayout一些按钮(例如OK |取消),只需设置一个值,layout_weight以便空间均匀分布.问题是,当您在横向模式下使用手机或(特别是)平板电脑时,最终会出现看起来很荒谬的巨大按钮.我尝试设置maxWidth按钮和线性布局,但无济于事.实现这一目标最简单的方法是什么?即,为视图设置最大水平尺寸,使其不会增长到整个宽度.我尝试了很多不同的东西,但都没有用.
这是一个示例布局:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="6dp"
android:paddingBottom="6dp">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"
android:textStyle="bold"
android:text="@string/button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/button2" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
注意:我知道我可以为横向创建一个新的布局文件并在那里做魔术.我想将专门的布局文件保持在最低限度,我希望这不需要它们.
如何设置水平的最大宽度LinearLayout?因此,如果内容很短(比如某些文本),则布局会缩小,如果内容较长,则不会扩展超过某个最大宽度值.
我更喜欢在XML级别这样做.