为什么按钮上的 maxWidth 不起作用以及如何解决它?
我的布局上有两个按钮,在大屏幕设备(平板电脑)上我想限制它们的宽度,这样它们看起来就不会很荒谬。我希望使用 maxWidth 属性,但它显然在我的场景中没有任何作用。这是布局定义 - 按钮使用布局的整个宽度,忽略 maxWidth 中的任何值。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:maxWidth="100dp"
android:text="Button 1"
/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:maxWidth="100dp"
android:text="Button 2"
/>
</LinearLayout>
为什么以及如何解决这个(显然是疯狂的)限制?
I have two buttons on the layout, and on a large-screen device (tablets) I want to cap their width so they don't look ridiculous. I expected to use the maxWidth attribute but it apparently does nothing in my scenario. Here's the layout definition - the buttons use up the full width of the layout, ignoring any value in maxWidth.
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:maxWidth="100dp"
android:text="Button 1"
/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:maxWidth="100dp"
android:text="Button 2"
/>
</LinearLayout>
Why, and how to workaround this (apparently crazy) limitation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
从两个按钮中删除
android:layout_weight="1"
行。添加
android:minWidth="50dp"
和android:layout_width="wrap_content"
编辑:
您需要根据屏幕手动计算按钮大小尺寸。首先,您需要设置标准屏幕尺寸。例如,如果您在屏幕宽度 400 像素上开发应用程序,按钮宽度为 100 像素,则在所有设备上保持相同
按钮宽度与屏幕宽度
比率的公式如下:案例:
如果屏幕宽度 = 480px,则按钮宽度应为 120px。
Remove the
android:layout_weight="1"
line from both buttons.Add
android:minWidth="50dp"
andandroid:layout_width="wrap_content"
EDIT:
You need to calculate the button sizes manually depending on the screen size. First you need to have a standard screen size set. For example, If the you develop the app on a screen width 400px, and the button is 100px wide, then the formula for maintaining the same
button width to screen width
ratio on all devices will be as followsUse case:
If screen width = 480px, then button width should be 120px.
解决此问题的好方法是为不同的屏幕分辨率组合创建多种布局。当您达到最大伸展程度时,创建一个在需要时具有固定值的新布局。请参阅 http://developer.android.com 中有关“使用布局别名”的部分/training/multiscreen/screensizes.html#TaskUseAliasFilters
The good way of solving this is to create multiple layout for different combination of screen resolution. When you get at some max stretch, create a new layout that have fixed value where needed. See the section about "Use layout alias" in http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters
宽度/高度似乎总是必须一起设置,..在我看来这是有效的
按钮的父项设置为包裹内容,因此缩小,但最大宽度为 400(4 个按钮)
Width/Height seem to always ahve to be set together,.. This is working in my view
The button's parent is set to wrap content, so scales down, but up to a max of 400 wide (4 buttons)
尝试将layout_width 设置为wrap_content 与0dp。
Try setting the layout_width to wrap_content vs. 0dp.