【问题标题】:Scrollview is not working on android studio? [duplicate]Scrollview 不能在 android studio 上运行? [复制]
【发布时间】:2019-02-22 06:35:29
【问题描述】:

我尝试了不同的方法,甚至重新做了整个事情,但我不知道为什么它不起作用。请问有什么帮助吗?每当我添加另一张卡片而不是滚动视图时,它只会在屏幕上占用更多空间,从而减少那里所有其他元素的大小。我是初学者,所以如果我犯了任何愚蠢的错误,我深表歉意。 Before adding another card,After adding another card

<ScrollView 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=".teamAndLeagueSelection"
android:fillViewport="true">

    <RelativeLayout
        android:padding="2dp"
        android:layout_weight="2"
        android:layout_width="match_parent"
        android:layout_height="0dp">
        <Button
            android:id="@+id/doneButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="Done"/>
        <Button
            android:id="@+id/logoutButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignLeft="@id/teamSelection"
            android:text="Log out"/>
        <TextView
            android:id="@+id/teamSelection"
            android:text="Select your preferred teams or leagues:"
            android:textSize="25sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/logoutButton"
            />

        <GridLayout
            android:layout_below="@id/teamSelection"
            android:scrollbars="vertical"
            android:columnCount="2"
            android:rowCount="3"
            android:alignmentMode="alignMargins"
            android:columnOrderPreserved="false"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="14dp"
            >
            <!-- Row 1 -->
            <!-- column 1 -->
            <!-- Barcelona -->
            <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="8dp"
                app:cardCornerRadius="8dp"
                >

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

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:src="@drawable/ic_barcelona" />

                    <TextView
                        android:layout_gravity="center_horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Barcelona"
                        android:textAlignment="center"
                        android:textColor="#000"
                        android:textSize="18sp"
                        android:textStyle="bold" />
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!-- column 2 -->
            <!-- Real Madrid -->
            <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="8dp"
                app:cardCornerRadius="8dp"
                >
                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="16dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/ic_real_madrid" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Real Madrid"
                        android:textAlignment="center"
                        android:textColor="#000"
                        android:textSize="18sp"
                        android:textStyle="bold"/>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!-- Row 2 -->
            <!-- column 1 -->
            <!-- Atletico Madrid -->
            <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="8dp"
                app:cardCornerRadius="8dp"
                >

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

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

                    <TextView
                        android:layout_gravity="center_horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Atletico Madrid"
                        android:textAlignment="center"
                        android:textColor="#000"
                        android:textSize="18sp"
                        android:textStyle="bold" />
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!-- column 2 -->
            <!-- Valencia -->
            <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="8dp"
                app:cardCornerRadius="8dp"
                >
                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="16dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/valencia" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Valencia"
                        android:textAlignment="center"
                        android:textColor="#000"
                        android:textSize="18sp"
                        android:textStyle="bold"/>
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!-- Row 3 -->
            <!-- column 1 -->
            <!-- Getafe CF -->
            <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="8dp"
                app:cardCornerRadius="8dp"
                >

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

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

                    <TextView
                        android:layout_gravity="center_horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Getafe CF"
                        android:textAlignment="center"
                        android:textColor="#000"
                        android:textSize="18sp"
                        android:textStyle="bold" />
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <!-- column 2 -->
            <!-- Sevilla -->
            <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="8dp"
                app:cardCornerRadius="8dp"
                >
                <LinearLayout
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_margin="16dp"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/sevilla" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Sevilla"
                        android:textAlignment="center"
                        android:textColor="#000"
                        android:textSize="18sp"
                        android:textStyle="bold"/>
                </LinearLayout>
            </android.support.v7.widget.CardView>

        </GridLayout>
    </RelativeLayout>
</ScrollView>

【问题讨论】:

  • @Zoe 我正在为我的项目使用 android studio。这是我项目的一部分,而不仅仅是一些代码。
  • 所以?您并没有专门询问 AS,无论您使用 Android Studio、Eclipse 还是将某些东西组合在一起并使用 Vim,代码仍然是相同的。见meta.stackoverflow.com/a/315196/6296561
  • @Zoe 那么我什么时候应该使用这个标签呢?可以举个例子吗?
  • 改用 android 标签(您已经使用过它,所以唯一需要做的就是删除 Android Studio 标签)。另见tag wiki

标签: java android user-interface android-scrollview


【解决方案1】:

您必须将滚动视图放在布局中,然后它才能正常工作...

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

<ScrollView android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
xmlns:android="http://schemas.android.com/apk/res/android">

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

  <!--put your nested layouts and other things which you want to use for 
  scrolling-->

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

请记住这一点,滚动视图只允许其中一种布局。

上面的代码一定能帮到你

【讨论】:

  • 我试过没用
  • 能否显示更新后的代码
【解决方案2】:

使用 RecyclerView 和 User Adapter 来动态添加卡片,而不是使用 GridLayout

【讨论】:

  • 我会努力做到的
【解决方案3】:

您已在 cardview 中提供 android:layout_rowWeight="1" 删除该行并将高度添加到 android:layout_height="wrap_content" 或在您的所有 Cardviews 中添加一些值,例如 android:layout_height="250dp"
ScrollView 没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2013-05-12
    相关资源
    最近更新 更多