Как равномерно разместить вокруг ImageButton с помощью LinearLayout

Я нашел, как создавать круглые кнопки ImageButton с использованием фона Shape, и я нашел, как равномерно размещать кнопки в LinearLayout, установив ширину на 0dp и вес на 1. Но я не могу комбинировать оба, поэтому либо круглые кнопки являются неравномерное расстояние, дБ Как равномерно разместить вокруг ImageButton с помощью LinearLayout

или они расположены равномерно, но не круглые Как равномерно разместить вокруг ImageButton с помощью LinearLayout

Кажется, дополнительное пространство идет на внутреннюю кнопку, а не на поля. Как я могу заставить 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>

В этом случае будет проще использовать ConstraintsLayout.

ADM 22.05.2018 04:33
1
1
890
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Решение, которое я нашел, заключалось в том, чтобы использовать пустые 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. Установите android: layout_width = "0dp" Шаг 2. Установите android: layout_weight одинаково для всех кнопок с суммой, равной 1.0.

<LinearLayout android:id = "@+id/linearLayout3"
android:layout_height = "wrap_content" 
android:orientation = "horizontal"
android:layout_width = "match_parent">

<ImageButton 
  android:layout_height = "wrap_content"
  android:id = "@+id/clear"
  android:layout_width = "0dp"
  android:layout_weight = ".5" />

 <ImageButton 
 android:layout_height = "wrap_content"
 android:id = "@+id/submit" 
 android:layout_width = "0dp"
 android:layout_weight = ".5" />
 </LinearLayout>

Большой! За исключением этого, необязательно устанавливать layout_width равным 1 сумме. Важно установить одинаковый вес для всех кнопок. (Например, это может быть 1, 1, 1 для 3 кнопок)

Eugene Kartoyev 03.04.2020 16:37

Другие вопросы по теме