具有滚动视图和线性布局的布局设计

时间:2019-03-08 07:52:33

标签: android android-layout

我绝对是android开发的初学者,并且正在开发具有滚动视图和线性布局的UI。这是我的代码

<?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>

我得到了两个水平的线性布局,没有任何问题。我要使第三个线性布局出现在第一个布局的底部。基本上我正在为我的应用程序开发仪表板UI,我只想制作2列和5行的线性布局矩阵。我已经在我的xml文件的第二行中添加了注释,如果有人可以帮助我提供xml代码或解决该问题的想法,我非常感谢。

2 个答案:

答案 0 :(得分:0)

您应该可以复制:

<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中。但是是看不见的问题吗?

我看到您在ScrollView之后拥有第一个LinearLayout作为match_parent。它应该是wrap_content,以使布局扩展到父级之外并且可以滚动。

一个很好的技巧是为布局设置不同的背景颜色,以便您可以查看每个布局的大小并检查宽度/高度是否有误。

编辑:我看到您的水平LinearLayout中有android:layout_height =“ 470dp”,在其子级中有android:layout_height =“ 120dp”。我不知道它的外观,但这似乎有点奇怪,也许您应该将Layouts设置为不同的背景颜色,以确保这是您想要的尺寸。

答案 1 :(得分:0)

请尝试使用此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