【问题标题】:Evenly spacing buttons with layout_weight but having a maxWidth具有 layout_weight 但具有 maxWidth 的均匀间距按钮
【发布时间】:2016-07-25 23:24:13
【问题描述】:

我有 4 个按钮,我使用 layout_weight="1" 和 layout_width="0dp" 将它们均匀隔开。但是,在大型平板电脑布局上,按钮过于分散并且看起来很难看,因此我想为所有按钮设置一个 maxWidth,并在整个 LinearLayout 的两侧留有空白空间(因此四个按钮聚集到中心)。然而,通过 StackOverflow 爬行,许多人说他们不一起工作。有没有办法让我实现上面想要做的事情?

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>
    

【问题讨论】:

    标签: android android-layout android-layout-weight android-layoutparams


    【解决方案1】:

    试试这个

    <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>
    

    一个简单的hack可能是

    1. 使用线性布局包裹您的按钮并为此布局设置权重

    2. 在此子布局内设置按钮的最大宽度

    【讨论】:

      【解决方案2】:

      试试这个`

      <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" />
      

      `

      根据需要为每个按钮添加边距。

      【讨论】:

      • 你得到答案了吗?
      猜你喜欢
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多