【问题标题】:Button half width of screen按钮半屏宽
【发布时间】:2012-03-17 06:23:57
【问题描述】:

我在线性布局中有一个按钮。我希望按钮占据其父级宽度的一半。有没有办法在布局 xml 中做到这一点。

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:padding="6dp">

    <Button
        android:id="@+id/buttonCollect"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="@string/hello"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"/>

</LinearLayout> 

我的问题很像Assign width to half available screen width declaratively 这个问题,只是我只有一个按钮。

【问题讨论】:

标签: android android-layout


【解决方案1】:

是的,解决方案与那个问题非常相似,但您还想设置父 LinearLayout 的 weightSum:

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:padding="6dp"
    android:weightSum="2">

    <Button
        android:id="@+id/buttonCollect"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:text="@string/hello"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_weight="1" />

</LinearLayout> 

【讨论】:

  • 哦,是的,如果你真的想要一半,从其他人提到的 0dp 宽度开始通常是个好主意。
  • 我有卡片视图作为父视图,并且在那个相对布局中。我使用了上述技术但没有奏效。
【解决方案2】:

您需要设置 0.5(一半)的权重,并将宽度设置为 0。

<Button
    android:id="@+id/buttonCollect"
    android:layout_width="0dip"
    android:layout_weight="0.5"
    android:layout_height="match_parent"
    android:text="@string/hello"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"/>

【讨论】:

  • 我有卡片视图作为父级,并且在那个相对布局中。我使用了上述技术但没有奏效。
  • @PrashanthDebbadwar 提出一个新问题,提供您自己的 xml。在 3 岁的答案下写评论不会产生结果。
【解决方案3】:

这些解决方案在 Android L 上都不适合我。我必须按如下方式执行 wrap_content:

<Button
    android:layout_gravity="center"
    android:id="@+id/btnSignin"
    android:layout_width="wrap_content"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:layout_height="wrap_content"
    android:text="@string/btn_signin"
    android:layout_marginBottom="@dimen/activity_vertical_margin" />

【讨论】:

    【解决方案4】:

    与您发布的问题完全相同,只需使用虚拟视图即可:

    <View 
    android:weight="1"
    android:layout_width="0dp"
    android:layout_height="match_parent"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 2013-08-05
      • 2012-06-29
      • 1970-01-01
      • 2015-01-09
      相关资源
      最近更新 更多