添加到滚动视图中时,卡片视图不起作用

Card view doesn't work when added inside scroll view

卡片与线性布局正确对齐,但一旦我将其更改为滚动视图,所有内容都会挤到屏幕顶部。

当我将第一个线性布局更改为滚动视图时,所有卡片都消失了。即使嵌套滚动视图也不起作用。

这是我遵循的教程: https://www.youtube.com/watch?v=go9q4O44b4E&list=PLjM-SORshDUo88dLfcepQWofORqwwOaP2&index=12&t=131s ,但是当我添加滚动视图时我的不起作用。

请帮助我,我到处都找过了,但我无法修复!!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:background="@color/colorWhite"
        android:weightSum="10"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


         <include
            android:id="@+id/action_bar2"
            layout="@layout/action_bar2">
         </include>


        <GridLayout android:id="@+id/mainGrid"
            android:columnCount="2"
            android:rowCount="3"

            android:alignmentMode="alignMargins"
            android:columnOrderPreserved="false"
            android:layout_weight="8"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:padding="14dp">


            <!--Row 1-->
            <!--Column 1-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                app:cardElevation="9dp"
                app:cardCornerRadius="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical" >


                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/art" />


                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Art"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Column 2-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                app:cardElevation="9dp"
                app:cardCornerRadius="9dp">

                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical" >

                        <ImageView
                            android:layout_width="203dp"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/education" />

                        <TextView
                            android:text="#Education"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

        <!--Row 2-->
        <!--Column 1-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                app:cardElevation="9dp"
                app:cardCornerRadius="9dp">

                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical" >

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/entertain" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Entertainment"
                            android:textColor="@color/colorWhite"
                            android:textSize="19sp"
                            android:textStyle="bold"
                            android:textAlignment="center"/>

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Column 2-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                app:cardElevation="9dp"
                app:cardCornerRadius="9dp">

                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">


                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/fashion"/>

                        <TextView
                            android:text="#Fashion"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Row 3-->
            <!--Column 1-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                app:cardElevation="9dp"
                app:cardCornerRadius="9dp">

                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical" >

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/date" />

                        <TextView
                            android:text="#Dating"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Column 2-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_columnWeight="1"
                android:layout_rowWeight="1"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                app:cardElevation="9dp"
                app:cardCornerRadius="9dp"
                >

                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical" >

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/music" />

                        <TextView
                            android:text="#Music"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>
         </GridLayout>
    </LinearLayout>
</LinearLayout>

试试这个代码可能有用...

<LinearLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.shreya.chatapplication.TopicsActiviy">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorWhite"
    android:orientation="vertical"
    android:weightSum="10">

    <include
        android:id="@+id/action_bar2"
        layout="@layout/action_bar2"/>

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

        <GridLayout
            android:id="@+id/mainGrid"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="8"
            android:alignmentMode="alignMargins"
            android:columnCount="2"
            android:columnOrderPreserved="false"
            android:padding="14dp"
            android:paddingBottom="15dp"
            android:rowCount="3">


            <!--Row 1-->
            <!--Column 1-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="16dp"
                app:cardCornerRadius="9dp"
                app:cardElevation="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">


                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/art" />


                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Art"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Column 2-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="16dp"
                app:cardCornerRadius="9dp"
                app:cardElevation="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">

                        <ImageView
                            android:layout_width="203dp"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/education" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Education"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Row 2-->
            <!--Column 1-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="16dp"
                app:cardCornerRadius="9dp"
                app:cardElevation="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/entertain" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Entertainment"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="19sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Column 2-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="16dp"
                app:cardCornerRadius="9dp"
                app:cardElevation="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">


                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">


                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/fashion" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Fashion"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Row 3-->
            <!--Column 1-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="16dp"
                app:cardCornerRadius="9dp"
                app:cardElevation="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">

                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/date" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Dating"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!--Column 2-->
            <android.support.v7.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_rowWeight="1"
                android:layout_columnWeight="1"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="16dp"
                app:cardCornerRadius="9dp"
                app:cardElevation="9dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="0dp"
                    android:orientation="vertical">

                    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:scaleType="centerCrop"
                            android:src="@drawable/music" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="#Music"
                            android:textAlignment="center"
                            android:textColor="@color/colorWhite"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                    </FrameLayout>
                </LinearLayout>
            </android.support.v7.widget.CardView>
        </GridLayout>
    </ScrollView>
</LinearLayout>