Невозможно заполнить пустое пространство линейным макетом

Я проектирую экран с линейной компоновкой. Экран выглядит так:

Невозможно заполнить пустое пространство линейным макетом

Как видите, после последнего макета появляются пробелы, и я не могу их удалить.

Код:

        <FrameLayout
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                app:layout_scrollFlags = "scroll">

            <LinearLayout
                android:id = "@+id/menu_absent_container"
                android:layout_width = "match_parent"
                android:layout_height = "match_parent"
                android:background = "@color/black"
                android:layout_marginLeft = "4dp"
                android:layout_marginRight = "4dp"
                android:layout_marginTop = "4dp"
                android:layout_marginBottom = "4dp"
                android:padding = "8dp"
                android:visibility = "gone"
                android:gravity = "center_horizontal"
                android:orientation = "vertical">

                <TextView
                    android:id = "@+id/message"
                    style = "@style/BodyStrong"
                    android:layout_width = "wrap_content"
                    android:layout_height = "wrap_content"
                    android:gravity = "left"
                    android:padding = "8dp"
                    android:textColor = "@color/white"
                    android:text = "@string/default_store_message"
                    />

                <Button
                    android:id = "@+id/navigate_default_menu"
                    style = "@style/BodySmall"
                    android:layout_width = "180dp"
                    android:layout_height = "wrap_content"
                    android:layout_marginTop = "8dp"
                    android:padding = "4dp"
                    android:text = "@string/default_menu"
                    android:contentDescription = "@string/profile_allergies_chart"
                    android:textColor = "@color/white_65_opacity"
                    android:background = "@drawable/fav_box"
                    tools:ignore = "MissingPrefix" />

                <Button
                    android:id = "@+id/navigate_location"
                    style = "@style/BodySmall"
                    android:layout_width = "180dp"
                    android:layout_height = "wrap_content"
                    android:layout_marginTop = "8dp"
                    android:padding = "4dp"
                    android:text = "@string/location_search"
                    android:contentDescription = "@string/profile_allergies_chart"
                    android:textColor = "@color/white_65_opacity"
                    android:background = "@drawable/fav_box"
                    tools:ignore = "MissingPrefix" />

            </LinearLayout>

            <android.support.v7.widget.RecyclerView
                android:id = "@+id/sub_menus"
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:visibility = "gone"
                android:background = "@drawable/backgroundwhite"
                android:padding = "2dp" />

            </FrameLayout>

Обратите внимание, что вид ресайклера тоже есть, НО он скрыт, не думаю, что это причина проблемы.

Как удалить пустое пространство и сделать так, чтобы оставшееся пространство занимало линейный макет?

Обновлено: изменение ширины макета кадра на match_parent не работает

Думаю, это не весь макет. Если match_parent во framenlayout не работает, должно быть что-то в рамке уровня наверху, что бы это заблокировать.

grabarz121 20.08.2018 11:31
2
1
105
4

Ответы 4

Ваш FrameLayout находится на wrap_content

Попробуй это:

    <FrameLayout
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            app:layout_scrollFlags = "scroll">

Измените android:layout_height = "wrap_content" в макете кадра на android:layout_height = "match_parent", чтобы заполнить все пространство по вертикали, а затем внесите любые другие необходимые изменения, чтобы вложенные макеты выглядели красиво.

попробуйте сменить родительский FrameLayout attributes

из

android:layout_height = "wrap_content"

к

android:layout_height = "match_parent"

Вы должны изменить свой атрибут FrameLayoutheight с wrap_content на match_parent

Поскольку wrap_content занимают только пространство, необходимое для вашего content, а не все пространство activity.

              <FrameLayout
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                app:layout_scrollFlags = "scroll">

Изменять:-

              <FrameLayout
                android:layout_width = "match_parent"
                android:layout_height = "match_parent"
                app:layout_scrollFlags = "scroll">

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