滚动视图没有按预期滚动

Posted

技术标签:

【中文标题】滚动视图没有按预期滚动【英文标题】:scroll view doesnt scroll as expected 【发布时间】:2013-07-25 18:31:08 【问题描述】:

在我的 xml 布局中,我在同一个文件中有 2 个单独的布局,一个图片网格,然后是一个全屏图像视图。问题是图片网格向下滚动到底部但不是一直到顶部,图片被切断。我不确定为什么会发生这种情况,这是我的 xml 文件:

<LinearLayout
    android:layout_
    android:layout_
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#000">

<LinearLayout
        android:layout_
        android:orientation="vertical"
        android:layout_
        android:id="@+id/full_image"
        android:visibility="gone"
        android:background="#00000000">

    <Button
            android:layout_
            android:layout_
            android:text="Return"
            android:id="@+id/button1"
            android:background="#fff"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginBottom="0dp"
            android:layout_gravity="left|center_vertical"/>

    <TextView
            android:layout_
            android:layout_
            android:id="@+id/TitleText3"
            android:textStyle="bold"
            android:layout_gravity="center"
            android:textColor="#fff"
            android:textIsSelectable="false"
            android:layout_marginBottom="-50dp"
            />

    <ImageView
            android:id="@+id/full_image_view"
            android:layout_
            android:layout_
            android:clickable="true"
            android:background="#00000000"
            android:layout_marginBottom="35dp"/>

    <SeekBar
            android:layout_
            android:layout_
            android:id="@+id/seekBar"
            android:layout_gravity="left|center_vertical"
            android:layout_marginTop="-110dp"
            android:max="26"
            android:longClickable="false"/>
</LinearLayout>

<ScrollView

        android:orientation="vertical"
        android:layout_
        android:layout_
        android:layout_gravity="left|center_vertical"
        android:id="@+id/rows">



<LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_
        android:layout_gravity="left|center_vertical"
        >


    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_gravity="left|center_vertical"
            android:weightSum="0"
            android:id="@+id/row1"
            android:layout_marginTop="5dp">
        <ImageView
                android:id="@+id/image1"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane1"/>
        <ImageView
                android:id="@+id/image2"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane2"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView
                android:id="@+id/image3"
                android:layout_
                android:layout_
                android:background="@drawable/plane3"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:layout_weight="20"/>
        <ImageView
                android:id="@+id/image4"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane4"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:adjustViewBounds="true"/>
    </LinearLayout>
    <LinearLayout

            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row2">
        <ImageView
                android:id="@+id/image5"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane5"/>
        <ImageView
                android:id="@+id/image6"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane6"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>

        <ImageView
                android:id="@+id/image7"
                android:layout_
                android:layout_
                android:background="@drawable/plane7"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:layout_weight="20"/>
        <ImageView
                android:id="@+id/image8"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane8"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>

    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row3">

        <ImageView
                android:id="@+id/image9"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane9"/>
        <ImageView
                android:id="@+id/image10"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane10"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView
                android:id="@+id/image11"
                android:layout_
                android:layout_
                android:background="@drawable/plane11"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:layout_weight="20"/>
        <ImageView
                android:id="@+id/image12"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane12"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
    </LinearLayout>

    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row4">

        <ImageView
                android:id="@+id/image13"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane13"/>
        <ImageView
                android:id="@+id/image14"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane14"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView
                android:id="@+id/image15"
                android:layout_
                android:layout_
                android:background="@drawable/plane15"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:layout_weight="20"/>
        <ImageView
                android:id="@+id/image16"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane16"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row5">

        <ImageView
                android:id="@+id/image17"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane17"/>
        <ImageView
                android:id="@+id/image18"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane18"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView
                android:id="@+id/image19"
                android:layout_
                android:layout_
                android:background="@drawable/plane19"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:layout_weight="20"/>
        <ImageView
                android:id="@+id/image20"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:background="@drawable/plane20"/>
    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row6">

        <ImageView
                android:id="@+id/image21"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane21"/>
        <ImageView
                android:id="@+id/image22"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane22"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView
                android:id="@+id/image23"
                android:layout_
                android:layout_
                android:background="@drawable/plane23"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:layout_weight="20"/>
        <ImageView
                android:id="@+id/image24"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:layout_marginLeft="5dp"
                android:background="@drawable/plane24"/>
    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row8">

        <ImageView
                android:id="@+id/image25"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane25"/>
        <ImageView
                android:id="@+id/image26"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane26"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView

                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView

                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:layout_marginTop="5dp"
            android:id="@+id/row8">

        <ImageView
                android:id="@+id/image27"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:background="@drawable/plane25"/>
        <ImageView
                android:id="@+id/image28"
                android:layout_
                android:layout_
                android:layout_weight="20"
                android:background="@drawable/plane26"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView

                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
        <ImageView

                android:layout_
                android:layout_
                android:layout_weight="20"
                android:clickable="true"
                android:layout_marginLeft="5dp"/>
    </LinearLayout>
</LinearLayout>
</ScrollView>

【问题讨论】:

您使用 fill_parent 作为滚动视图尺寸。有什么具体原因吗?我倾向于使用 match_parent 或 wrap_content,我没有这个问题。 【参考方案1】:

您似乎在结尾处缺少 LinearLayout 标记。

您以父 LinearLayout 声明开始文件,并且永远不会有结束 &lt;/LinearLayout&gt; 标记来匹配它。

尝试将&lt;/LinearLayout&gt; 添加到最后,紧跟在&lt;/ScrollView&gt; 之后。

【讨论】:

我检查了我的布局,它在那里,当我把代码放在这里时,它一定没有被复制过来。 intelij 不会告诉我这是错误吗? 尝试将ScrollView 的宽度和高度更改为wrap_content。同样对ScrollView 中的第一个LinearLayout 执行相同操作。 您是否考虑过仅使用父 LinearLayout 创建一个新布局并开始添加当前布局的部分(或块),以查看哪些有效,然后何时停止工作?

以上是关于滚动视图没有按预期滚动的主要内容,如果未能解决你的问题,请参考以下文章

UI 滚动视图未按预期滚动

RecyclerView 没有按预期滚动

加载数据后如何防止滚动视图滚动到网络视图?

QGraphicsView 滚动条策略未按预期工作

用于水平滚动的 UIScrollView 内的 UITableView 无法按预期工作

以编程方式滚动到顶部不起作用?