为什么Button上的maxWidth不起作用以及如何解决它?

我在布局上有两个按钮,在大屏幕设备(平板电脑)上我想要限制它们的宽度,这样它们看起来并不荒谬。 我希望使用maxWidth属性,但它在我的场景中显然没有任何作用。 这是布局定义 – 按钮使用布局的整个宽度,忽略maxWidth中的任何值。

 

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

从两个按钮中删除android:layout_weight="1"行。
添加android:minWidth="50dp"android:layout_width="wrap_content"

编辑:

您需要根据屏幕大小手动计算按钮大小。 首先,您需要设置标准屏幕尺寸。 例如,如果您在宽度为400px的屏幕上开发应用程序,并且按钮宽度为100px,那么在所有设备上保持相同button width to screen width比的公式将如下所示

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

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

解决这个问题的好方法是为不同的屏幕分辨率组合创建多个布局。 当您达到某个最大拉伸时,创建一个在需要时具有固定值的新布局。 请参阅http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters中有关“使用布局别名”的部分。

尝试将layout_width设置为wrap_content与0dp。

宽度/高度似乎总是设置在一起,..这在我看来是有效的

   

按钮的父级设置为包装内容,因此缩小,但最多400宽(4个按钮)