android – 为什么一个Button上的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>

为什么,如何解决这个(显然是疯狂的)限制?

从两个按钮中删除android:layout_weight =“1”行.
添加android:minWidth =“50dp”和android:layout_width =“wrap_content”

编辑:

您需要根据屏幕尺寸手动计算按钮尺寸.首先,您需要设置一个标准的屏幕尺寸.例如,如果您在屏幕宽度为400px的宽度上开发应用程序,并且该按钮的宽度为100px,那么在所有设备上保持相同的按钮宽度与屏幕宽度比的公式如下

 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
 buttonWidth = 100 * (metrics.widthPixels/400); 

用例:如果屏幕宽度= 480px,则按钮宽度应为120px.

翻译自:https://stackoverflow.com/questions/7205282/why-does-maxwidth-on-a-button-not-work-and-how-to-work-around-it

转载注明原文:android – 为什么一个Button上的maxWidth不起作用?