如何使用LinearLayout均匀地对ImageButtons进行空间分隔

时间:2018-05-22 02:06:16

标签: android android-linearlayout imagebutton android-imagebutton

我已经找到了如何使用Shape背景创建圆形ImageButtons,我已经找到了如何通过将宽度设置为0dp并将权重设置为1来均匀地间隔LinearLayout中的按钮。但我不能两者结合,所以圆形按钮的间距不均匀 round but not evenly spaced

或它们均匀间隔但不是圆形的 enter image description here

似乎额外的空间是内部按钮而不是边距。如何让LinearLayout将新的空白空间分配给边距而不是视图?

这是给我上面第二张图片的布局

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    <ImageButton
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/ic_add_black_24dp"
            android:background="@drawable/rounded"/>

    <ImageButton
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/ic_add_black_24dp"
            android:background="@drawable/rounded"/>

    <ImageButton
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/ic_add_black_24dp"
            android:background="@drawable/rounded"/>
</LinearLayout>

这是背景

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
  <solid android:color="#33DDFF" />
  <corners android:radius="4dp"/>
</shape>

2 个答案:

答案 0 :(得分:1)

我找到的解决方案是在按钮之间使用空的Space,并使这些占用额外的空间

    <Space
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_weight="1" >
    </Space>

我必须从实际按钮中移除重量并将宽度设置为wrap_content

 <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/ic_add_black_24dp"

            android:background="@drawable/rounded"
            android:contentDescription="@string/speak_button_desc"/>

答案 1 :(得分:0)

试试这个:

步骤1:设置android:layout_width =&#34; 0dp&#34; 第2步:在所有按钮中均等地设置android:layout_weight,其总和等于1.0

UIApplication.shared.open(URL(string:UIApplication.openSettingsURLString)!)