0

У меня есть 4 кнопки, которые я равномерно распределяю с помощью layout_weight = "1" и layout_width = "0dp". Однако на больших планшетах планшеты слишком распространены и выглядят уродливыми, поэтому я хочу установить maxWidth для всех из них и иметь пустые пространства на обеих сторонах всего LinearLayout (так что четыре кнопки группируются в центр). Однако, сканируя через StackOverflow, многие говорят, что они не работают вместе. Есть ли способ для меня достичь того, что я хочу сделать выше?Уравнительные кнопки с layout_weight, но с maxWidth

TL; др:

  1. Ниже определенной ширины (скажем, 100dp), все 4 кнопки расположены равномерно.
  2. Если для компоновки требуется, чтобы кнопки были больше 100dp, все 4 кнопки устанавливались на ширину 100dp и склеивались друг с другом, оставляя пространство на обеих сторонах макета.

    <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="@dimen/layout_height" 
        android:background="@drawable/layout_background" 
        android:orientation="horizontal"> 
    
    <Button 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:background="@color/button_background"/> 
    
    <Button 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:background="@color/button_background"/> 
    
    <Button 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:background="@color/button_background"/> 
    
    <Button 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:background="@color/button_background"/> 
    
    </LinearLayout> 
    

ответ

0

Попробуйте

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/layout_height" 
    android:background="@drawable/layout_background" 
    android:orientation="horizontal"> 

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:orientation="horizontal"> 
<Button 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:maxWidth="100dp" 
    android:background="@color/button_background"/> 
</LinearLayout>  

</LinearLayout> 

Простой хак может быть

  1. Оберните кнопку с компоновкой Linear и установить вес этой схемы

  2. Set максимальная ширина до кнопки внутри t его югу макет

0

попробовать это один `

<Button 
    android:background="@color/button_background" 
    android:layout_height="match_parent" 
    android:layout_margin="20dp" 
    android:layout_weight="1" 
    android:layout_width="0dp" /> 

<Button 
    android:background="@color/button_background" 
    android:layout_height="match_parent" 
    android:layout_margin="20dp" 
    android:layout_weight="1" 
    android:layout_width="0dp" /> 

<Button 
    android:background="@color/button_background" 
    android:layout_height="match_parent" 
    android:layout_margin="20dp" 
    android:layout_weight="1" 
    android:layout_width="0dp" /> 

<Button 
    android:background="@color/button_background" 
    android:layout_height="match_parent" 
    android:layout_margin="20dp" 
    android:layout_weight="1" 
    android:layout_width="0dp" /> 

`

добавить маржу к каждой кнопке, как вы хотите.

+0

Вы получили ответ? – DKV