我在ScrollView中遇到奇怪的问题,其中包含带有topMargin的relativeLayout
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:fillViewport="true"
android:focusableInTouchMode="true">
<RelativeLayout
android:id="@+id/cp_editor_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:layout_marginTop="270dp"
>
...
此代码示例不起作用。大约20px后滚动停止。如果我删除margin_top属性,则滚动按预期工作。
感谢您的帮助
答案 0 :(得分:4)
我不明白topMargin停止滚动的问题。但是,为了获得所需的余量并保持滚动功能,我可以想到两个解决方案:
1)添加一个与您想要的边距高度相同的无关视图,并将其放在相对布局(cp_editor_layout)上方。它看起来像这样:
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:fillViewport="true"
android:focusableInTouchMode="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="270dp" />
<RelativeLayout
android:id="@+id/cp_editor_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" >
</RelativeLayout>
</LinearLayout>
2)为您的滚动视图提供边距上边距,因为无论如何都不需要该空间。如果您要进行某种类型的过度滚动,则需要对ScrollView进行子类化。
希望这能以某种方式帮助你:)