Есть ли свободное пространство, когда я использую spread_inside в ограничении в Android Studio? - PullRequest
0 голосов
/ 09 октября 2019

Я использую план земли с Макет A , я установил app:layout_constraintVertical_chainStyle="spread_inside" для 4 кнопок изображения

Но я обнаружил, что есть еще пространство, вы можете увидеть Изображение A.

Кстати, я получаю тот же результат, когда использую app:layout_constraintVertical_chainStyle="spread"

И другие:

Если я использую вертикальный макет с Макет B, Я обнаружил, что там нет места, вы можете увидеть Изображение B .

Как я могу удалить пространство, когда я использую Макет A ?

Макет A

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/camera_ui_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


    <ImageButton
            android:id="@+id/btnFlash"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginBottom="@dimen/margin_xsmall"
            android:layout_marginRight="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintVertical_chainStyle="spread_inside"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/btnVideo"
            app:srcCompat="@drawable/ic_flash_on" />

    <ImageButton
            android:id="@+id/btnVideo"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginRight="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintBottom_toTopOf="@+id/btnFlash"
            app:layout_constraintTop_toBottomOf="@+id/btnPicture"
            app:srcCompat="@drawable/ic_menu" />


    <ImageButton
            android:id="@+id/btnPicture"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginRight="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintBottom_toTopOf="@+id/btnVideo"
            app:layout_constraintTop_toBottomOf="@+id/btnAction"
            app:srcCompat="@drawable/ic_menu" />

    <ImageButton
            android:id="@+id/btnAction"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"

            android:layout_marginTop="@dimen/margin_xsmall"
            android:layout_marginRight="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintBottom_toTopOf="@+id/btnPicture"

            app:srcCompat="@drawable/ic_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>

Изображение A

enter image description here

Макет B

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/camera_ui_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <ImageButton
            android:id="@+id/btnFlash"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginLeft="@dimen/margin_xsmall"
            android:layout_marginBottom="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintHorizontal_chainStyle="spread_inside"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/btnVideo"
            app:srcCompat="@drawable/ic_flash_on" />

    <ImageButton
            android:id="@+id/btnVideo"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginBottom="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/btnFlash"
            app:layout_constraintRight_toLeftOf="@+id/btnPicture"
            app:srcCompat="@drawable/ic_menu" />


    <ImageButton
            android:id="@+id/btnPicture"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginBottom="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/btnVideo"
            app:layout_constraintRight_toLeftOf="@+id/btnAction"
            app:srcCompat="@drawable/ic_menu" />

    <ImageButton
            android:id="@+id/btnAction"
            android:layout_width="@dimen/round_button_medium"
            android:layout_height="@dimen/round_button_medium"
            android:layout_marginRight="@dimen/margin_xsmall"
            android:layout_marginBottom="@dimen/margin_medium"
            android:background="@android:color/transparent"
            android:scaleType="fitCenter"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/btnPicture"
            app:srcCompat="@drawable/ic_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>

Изображение B

enter image description here

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Атрибут app:layout_constraintVertical_chainStyle должен быть установлен в первом элементе цепочки. В вертикальных цепочках это первый элемент сверху, поэтому вы должны переместить атрибут стиля цепочки с btnFlash на btnAction.

В макете B он работает должным образом, поскольку вы правильно установили атрибут на первомцепной вид слева.

0 голосов
/ 09 октября 2019

Снимите верхнюю и нижнюю границу.

enter image description here

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/camera_ui_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <ImageButton
        android:id="@+id/btnFlash"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginEnd="@dimen/margin_medium"
        android:background="@android:color/transparent"
        android:scaleType="fitCenter"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnVideo"
        app:layout_constraintVertical_chainStyle="spread_inside"
        app:srcCompat="@drawable/ic_need_it" />

    <ImageButton
        android:id="@+id/btnVideo"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginEnd="@dimen/margin_medium"
        android:background="@android:color/transparent"
        android:scaleType="fitCenter"
        app:layout_constraintBottom_toTopOf="@+id/btnFlash"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnPicture"
        app:srcCompat="@drawable/ic_like_gray" />


    <ImageButton
        android:id="@+id/btnPicture"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginEnd="@dimen/margin_medium"
        android:background="@android:color/transparent"
        android:scaleType="fitCenter"
        app:layout_constraintBottom_toTopOf="@+id/btnVideo"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnAction"
        app:srcCompat="@drawable/ic_in_love" />

    <ImageButton
        android:id="@+id/btnAction"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginEnd="@dimen/margin_medium"
        android:background="@android:color/transparent"
        android:scaleType="fitCenter"
        app:layout_constraintBottom_toTopOf="@+id/btnPicture"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/ic_got_it" />

</androidx.constraintlayout.widget.ConstraintLayout>
...