滚动视图被线性布局阻塞
Scrollview getting blocked by linear layout
我有这样的设计:
XMLFile1.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/option_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
android:name="question_paper_scrollView"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</ScrollView>
</RelativeLayout>
XMLFile2.xml
<RelativeLayout
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="fill_parent"
android:layout_height="match_parent">
<include layout=XMLFile1.xml>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:gravity="center|bottom"
android:weightSum="4"/>
</RelativeLayout>
我根据this and also set the minimumHeight()
of the FrameLayout
as per this. FrameLayout
holds the quiz questions and they need to be scrollable and the LinearLayout
consists of set of buttons like next, previous and clear. I learnt from this在ScrollView
中设置了android:fillViewport="true"
LinearLayout
可以隐藏ScrollView
但我可以看到ScrollBar。实现的正确方法是什么:给定设计的可滚动问题?
PS:我不得不使用 LinearLayout
,因为我想在屏幕底部设置一组按钮,而使用 FrameLayout
,因为我正在从数据库动态加载测验问题。
解决方案:两个答案的组合。在所有布局中使用 wrap_content,在线性布局中使用用户 layout_below 属性
您可以为 ScrollView 调用 bringToFront()
如果它不阻止视图。
或者调整 android:height
的观看次数。
您还将 ScrollView 设置为 android:layout_below="@id/includeView"
试试这个,在两个 xml 文件中采用所有布局和视图的高度 wrap_content 而不是 fill_parent 或 match_parent.
我有这样的设计: XMLFile1.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/option_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
android:name="question_paper_scrollView"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</ScrollView>
</RelativeLayout>
XMLFile2.xml
<RelativeLayout
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="fill_parent"
android:layout_height="match_parent">
<include layout=XMLFile1.xml>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:gravity="center|bottom"
android:weightSum="4"/>
</RelativeLayout>
我根据this and also set the minimumHeight()
of the FrameLayout
as per this. FrameLayout
holds the quiz questions and they need to be scrollable and the LinearLayout
consists of set of buttons like next, previous and clear. I learnt from this在ScrollView
中设置了android:fillViewport="true"
LinearLayout
可以隐藏ScrollView
但我可以看到ScrollBar。实现的正确方法是什么:给定设计的可滚动问题?
PS:我不得不使用 LinearLayout
,因为我想在屏幕底部设置一组按钮,而使用 FrameLayout
,因为我正在从数据库动态加载测验问题。
解决方案:两个答案的组合。在所有布局中使用 wrap_content,在线性布局中使用用户 layout_below 属性
您可以为 ScrollView 调用 bringToFront()
如果它不阻止视图。
或者调整 android:height
的观看次数。
您还将 ScrollView 设置为 android:layout_below="@id/includeView"
试试这个,在两个 xml 文件中采用所有布局和视图的高度 wrap_content 而不是 fill_parent 或 match_parent.