ScrollView不会滚动,只是切断屏幕。如何解决?

时间:2017-04-03 03:11:55

标签: android android-scrollview

我知道这个问题已被提出,但我没有发现任何可行的问题。这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="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.project.myproject.SpendFragment">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/testBannerAdId">
    </com.google.android.gms.ads.AdView>

    <ScrollView
        android:layout_above="@id/adView"
        android:padding="@dimen/layoutPadding"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

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

                <ImageButton
                    android:id="@+id/alabamaButton"
                    android:contentDescription="Alabama"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>

                <ImageButton
                    android:id="@+id/alaskaButton"
                    android:contentDescription="Alaska"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>

                <ImageButton
                    android:id="@+id/arizonaButton"
                    android:contentDescription="Arizona"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/arkansasButton"
                    android:contentDescription="Arkansas"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

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

                <ImageButton
                    android:id="@+id/californiaButton"
                    android:text="California"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/coloradoButton"
                    android:text="Colorado"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/connecticutButton"
                    android:text="Connecticut"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/delawareButton"
                    android:text="Delaware"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

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

                <ImageButton
                    android:id="@+id/floridaButton"
                    android:text="Florida"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/georgiaButton"
                    android:text="Georgia"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/hawaiiButton"
                    android:text="Hawaii"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/idahoButton"
                    android:text="Idaho"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

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

                <ImageButton
                    android:id="@+id/illinoisButton"
                    android:text="Illinois"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/indianaButton"
                    android:text="Indiana"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/iowaButton"
                    android:text="Iowa"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/kansasButton"
                    android:text="Kansas"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

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

                <ImageButton
                    android:id="@+id/kentuckyButton"
                    android:text="Kentucky"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/louisianaButton"
                    android:text="Louisiana"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/maineButton"
                    android:text="Maine"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/marylandButton"
                    android:text="Maryland"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

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

                <ImageButton
                    android:id="@+id/massachusettsButton"
                    android:text="Massachusetts"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/michiganButton"
                    android:text="Michigan"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/minnesotaButton"
                    android:text="Minnesota"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/mississippiButton"
                    android:text="Mississippi"
                    android:src="@drawable/placeholder2"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

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

                <ImageButton
                    android:id="@+id/missouriButton"
                    android:text="Missouri"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/montanaButton"
                    android:text="Montana"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/nebraskaButton"
                    android:text="Nebraska"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <ImageButton
                    android:id="@+id/nevadaButton"
                    android:text="Nevada"
                    android:src="@drawable/placeholder"
                    android:adjustViewBounds="true"
                    android:gravity="center"
                    android:layout_weight="25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>
        </LinearLayout>

    </ScrollView>

</RelativeLayout>

如果它是相关的,这里是片段所在的Main活动的xml:

<android.support.design.internal.ScrimInsetsFrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:fitsSystemWindows="true"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    tools:context="com.project.myproject.MainActivity" >

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </FrameLayout>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.NavigationView
            android:id="@+id/navigationView"
            android:layout_gravity="start"
            android:layout_width="@dimen/drawerWidth"
            android:layout_height="@dimen/drawerHeight"
            app:menu="@menu/drawer_menu" />

    </android.support.v4.widget.DrawerLayout>

</android.support.design.internal.ScrimInsetsFrameLayout>

LinearLayout中有更多的LinearLayout,但你明白了(更多的状态ImageButtons)。我可以在右边看到一个小滚动的东西,但它消失了,不会再回来。如果它是相关的,底部的AdView有空间,但它只是空白区域。我知道有时会出现一个真实的广告,所以我只是觉得小占位符广告最终会显示出来。

如您所见,ScrollView的身高为match_parentLinearLayout的身高为wrap_contentScrollView中有一个孩子。 ScrollView仅包含在RelativeLayout中,因为我希望AdView位于ScrollView之下。问题是外部LinearLayout有多个孩子吗?我之前从未遇到任何ScrollViews的问题,所以这有点烦人哈哈。

谢谢!

编辑:这是两张图片。唯一的区别是一个侧面有一个小滚动条,另一个没有。它会消失,并且在触摸或移动时不会再出现。蓝色方块是占位符图像,每个内部LinearLayout有四个方块。

enter image description here enter image description here

3 个答案:

答案 0 :(得分:0)

ScrollView的宽度和高度不能都是“match_parent”。

您可以尝试将ScrollView的高度更改为“wrap_content”以查看它是否有效。

答案 1 :(得分:0)

尝试向ScrollView添加下边距,看看是否有帮助:

android:layout_marginBottom="?attr/actionBarSize"

答案 2 :(得分:0)

这里在您的代码+标志缺少定义Id android:layout_above请添加+符号并尝试一次。 而不是这个android:layout_above =&#34; @ id / adView&#34;去寻找android:layout_above =&#34; @ + id / adView&#34;

OR

将AdView放在ScrollView下方

从ScrollView android中删除你的行:layout_above =&#34; @ + id / adView&#34; 并将此行添加到Adview小部件

机器人:layout_below =&#34; @ + ID / scroll_view&#34;