我已经尝试了几种方法来实现这一点,但到目前为止还没有成功。 需要使用主ScrollView来启用片段之间的滚动。 RelativeLayout就在那里,所以我们在所有片段的父屏幕底部对齐“Back / Save / Done”按钮。
现在在我的代码中,我以编程方式将TableLayouts添加到LinearLayout下面(我还尝试使用GridViews而不是TableLayouts)。
<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/PageRadioGroup"
android:layout_alignParentTop="true"
android:layout_marginTop="3dp"
android:orientation="vertical" >
</LinearLayout>
这个LinearLayout不可滚动,问题是我有4个表,只有第一个表可见。如果我将LinearLayout包含在ScrollView / NestedScrollView中,那么主要的父ScrollView将被禁用。
如何在主ScrollView中保持滚动,保持RelativeLayout结构,同时允许在子LinearLayout中滚动以查看其中的所有表。
这是我的布局xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp" >
<RadioGroup
android:id="@+id/PageRadioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="19dp"
android:clickable="false"
android:orientation="horizontal" >
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:clickable="false" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false" />
</RadioGroup>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="349dp"
android:layout_above="@+id/PageRadioGroup"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:focusableInTouchMode="true" >
</android.support.v4.view.ViewPager>
<Button
android:id="@+id/btnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:text="@string/back"
android:textAllCaps="false" />
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:text="@string/save"
android:textAllCaps="false"/>
<Button
android:id="@+id/btnDone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignStart="@+id/btnSave"
android:text="@string/done"
android:textAllCaps="false" />
<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/PageRadioGroup"
android:layout_alignParentTop="true"
android:layout_marginTop="3dp"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>
</ScrollView>
谢谢!
答案 0 :(得分:0)
我设法实现了我想要的目标。下面是更新的布局xml。我认为主要的解决方法是将ViewPager的高度更改为wrap_content。然后我将一个NestedScrollView添加到LinearLayout。这些表以编程方式添加到LinearLayout,android:id =“@ + id / Layout”。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp" >
<RadioGroup
android:id="@+id/PageRadioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="19dp"
android:clickable="false"
android:orientation="horizontal" >
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:clickable="false" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false" />
</RadioGroup>
<android.support.v4.view.ViewPager
android:id="@+id/Pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/PageRadioGroup"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:focusableInTouchMode="true" >
</android.support.v4.view.ViewPager>
<Button
android:id="@+id/btnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:text="@string/back"
android:textAllCaps="false"/>
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:text="@string/save"
android:textAllCaps="false"/>
<Button
android:id="@+id/btnDone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignStart="@+id/btnSave"
android:text="@string/done"
android:textAllCaps="false" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/PageRadioGroup"
android:layout_alignParentTop="true"
android:layout_marginTop="3dp"
android:nestedScrollingEnabled="true"
android:orientation="vertical" >
<android.support.v4.widget.NestedScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:isScrollContainer="true" >
<LinearLayout
android:id="@+id/Layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="true"
android:orientation="vertical" >
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
</RelativeLayout>
</ScrollView>