滚动视图没有按预期滚动
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 声明开始文件,并且永远不会有结束 </LinearLayout>
标记来匹配它。
尝试将</LinearLayout>
添加到最后,紧跟在</ScrollView>
之后。
【讨论】:
我检查了我的布局,它在那里,当我把代码放在这里时,它一定没有被复制过来。 intelij 不会告诉我这是错误吗? 尝试将ScrollView
的宽度和高度更改为wrap_content
。同样对ScrollView
中的第一个LinearLayout
执行相同操作。
您是否考虑过仅使用父 LinearLayout
创建一个新布局并开始添加当前布局的部分(或块),以查看哪些有效,然后何时停止工作?
以上是关于滚动视图没有按预期滚动的主要内容,如果未能解决你的问题,请参考以下文章