макет с прокруткой и линейной компоновкой - PullRequest
0 голосов
/ 08 марта 2019

Я абсолютный новичок в разработке для Android, и я разрабатываю пользовательский интерфейс с прокруткой и линейным макетом. Вот мой код

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:clipToPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:weightSum="1">

            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/holo_green_light"
                android:theme="?attr/actionBarTheme"
                android:minHeight="?attr/actionBarSize"
                android:id="@+id/dashboardToolbar"
                android:layout_weight="0.04" />

            <TextView
                android:text="Manage Activities"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textView"
                android:layout_weight="9.78"
                android:textAlignment="center"
                android:textSize="30sp"
                android:layout_margin="21dp"
                android:fontFamily="cursive"
                android:textColor="@android:color/holo_orange_light"
                android:textStyle="normal|bold" />

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="470dp"
                android:weightSum="1">

                <LinearLayout
                    android:orientation="vertical"
                    android:layout_margin="4dp"
                    android:background="@color/green"
                    android:layout_width="0dp"
                    android:layout_weight="0.5"
                    android:layout_height="120dp"></LinearLayout>

                <LinearLayout
                    android:orientation="vertical"
                    android:layout_margin="4dp"
                    android:background="@color/deeppurple"
                    android:layout_width="0dp"
                    android:layout_weight="0.5"
                    android:layout_height="120dp">

                </LinearLayout>


            </LinearLayout>


            <!-- second row -->



            <!-- second row- -->


        </LinearLayout>
    </ScrollView>
</LinearLayout>

Я получаю две линейные компоновки по горизонтали без каких-либо проблем. Я хочу, чтобы третий линейный макет отображался внизу первого макета. В основном я занимаюсь разработкой пользовательского интерфейса для своего приложения, и я просто хочу сделать 2 столбца и 5 строк матрицы линейного макета. Я прокомментировал область в моем XML-файле, которая называется второй строкой. Если кто-то может помочь мне предоставить XML-код для этого или идею для решения этой проблемы, я очень благодарен.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Пожалуйста, попробуйте этот код XML для достижения вашего макета желания

код

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="true"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v7.widget.Toolbar
            android:id="@+id/dashboardToolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.04"
            android:background="@android:color/holo_green_light"
            android:minHeight="?attr/actionBarSize"
            android:theme="?attr/actionBarTheme" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:weightSum="1">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".08"
                android:gravity="center">

                <TextView
                    android:id="@+id/textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="cursive"
                    android:text="Manage Activities"
                    android:textAlignment="center"
                    android:textColor="@android:color/holo_orange_light"
                    android:textSize="30sp"
                    android:textStyle="normal|bold" />
            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".02" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".14">

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

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorPrimary"
                        android:orientation="vertical">

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorAccent"
                        android:orientation="vertical">

                    </LinearLayout>

                </LinearLayout>
            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".02" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".14">

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

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorPrimary"
                        android:orientation="vertical">

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorAccent"
                        android:orientation="vertical">

                    </LinearLayout>

                </LinearLayout>

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".02" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".14">

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

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorPrimary"
                        android:orientation="vertical">

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorAccent"
                        android:orientation="vertical">

                    </LinearLayout>

                </LinearLayout>

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".02" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".14">

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

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorPrimary"
                        android:orientation="vertical">

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorAccent"
                        android:orientation="vertical">

                    </LinearLayout>

                </LinearLayout>

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".02" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".14">

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

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorPrimary"
                        android:orientation="vertical">

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="120dp"
                        android:layout_margin="4dp"
                        android:layout_weight="0.5"
                        android:background="@color/colorAccent"
                        android:orientation="vertical">

                    </LinearLayout>

                </LinearLayout>

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight=".1" />
        </LinearLayout>

    </LinearLayout>
</ScrollView>
</LinearLayout>

Снимок экрана

enter image description here

0 голосов
/ 08 марта 2019

Вы должны просто иметь возможность скопировать:

<LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="470dp"
            android:weightSum="1">

            <LinearLayout
                android:orientation="vertical"
                android:layout_margin="4dp"
                android:background="@color/green"
                android:layout_width="0dp"
                android:layout_weight="0.5"
                android:layout_height="120dp"></LinearLayout>

            <LinearLayout
                android:orientation="vertical"
                android:layout_margin="4dp"
                android:background="@color/deeppurple"
                android:layout_width="0dp"
                android:layout_weight="0.5"
                android:layout_height="120dp">

            </LinearLayout>


        </LinearLayout>

в ваш вертикальный LinearLayout. И он должен работать.Но проблема в том, что это не видно?

Я вижу, что у вас есть первый LinearLayout после ScrollView как match_parent.Это должно быть wrap_content, чтобы макет расширялся за пределы родительского и был прокручиваемым.

Хороший совет - установить различные цвета фона для макетов, чтобы вы могли видеть размер каждого макета и проверять наличие ошибок по ширине / высоте.

Редактировать: Я вижу, что у вас есть android: layout_height = "470dp" в вашем горизонтальном LinearLayout и android: layout_height = "120dp" в его дочерних элементах.Я не знаю, как это должно выглядеть, но это выглядит немного странно, возможно, вам следует настроить Layouts на разные цвета фона, чтобы убедиться, что это именно те размеры, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...