Android Scrollview里面没有显示所有内容的选项卡

时间:2016-01-05 22:47:58

标签: android tabs scrollview

我有两个标签,在第二个标签中我的内容比视口大,所以我需要ScrollView。但是,我无法让ScrollView显示所有内容。它在最后~10 / 20dp时削减了视野。这是我的TabFragment.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Dikte glas (mm)"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="16dp" />

        <TextView
            android:id="@+id/seekBarValue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_marginTop="16dp"
            android:layout_marginRight="16dp"
            android:layout_alignParentEnd="true">
        </TextView>

        <SeekBar
            android:id="@+id/seekBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:max="200"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_below="@+id/seekBarValue"/>

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            card_view:cardCornerRadius="0dp"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="20dp"
            android:layout_marginRight="8dp"
            android:layout_below="@id/seekBar">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="16dp">

                <TextView
                    android:id="@+id/soakTime"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Soak time"
                    android:textStyle="bold"
                    />

                <TextView
                    android:id="@+id/txtResultStep1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"/>

            </RelativeLayout>

        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            card_view:cardCornerRadius="0dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_below="@id/card_view1">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="16dp">

                <TextView
                    android:id="@+id/initialCooling"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Initial Cooling"
                    android:textStyle="bold"
                    android:textSize="18sp"
                    />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginTop="8dp"
                    android:background="@android:color/darker_gray"
                    android:layout_below="@id/initialCooling"/>

                <TextView
                    android:id="@+id/rate1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Rate"
                    android:layout_below="@id/initialCooling"
                    android:layout_marginTop="16dp"
                    />

                <TextView
                    android:id="@+id/txtResultStep2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignBaseline="@id/rate1"
                    />

                <TextView
                    android:id="@+id/range1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Range"
                    android:layout_below="@id/rate1"
                    android:layout_marginTop="8dp"
                    />

                <TextView
                    android:id="@+id/txtResultStep3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignBaseline="@id/range1"/>

            </RelativeLayout>

        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            card_view:cardCornerRadius="0dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_below="@id/card_view2">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="16dp">

                <TextView
                    android:id="@+id/secondCooling"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2nd Cooling"
                    android:textStyle="bold"
                    android:textSize="18sp"
                    />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginTop="8dp"
                    android:background="@android:color/darker_gray"
                    android:layout_below="@id/secondCooling"/>

                <TextView
                    android:id="@+id/rate2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Rate"
                    android:layout_below="@id/secondCooling"
                    android:layout_marginTop="16dp"
                    />

                <TextView
                    android:id="@+id/txtResultStep4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignBaseline="@id/rate2"/>

                <TextView
                    android:id="@+id/range2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Range"
                    android:layout_below="@id/rate2"
                    android:layout_marginTop="8dp"
                    />

                <TextView
                    android:id="@+id/txtResultStep5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignBaseline="@id/range2"/>

            </RelativeLayout>

        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            card_view:cardCornerRadius="0dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_below="@id/card_view3">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="16dp">

                <TextView
                    android:id="@+id/thirdCooling"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="3rd Cooling"
                    android:textStyle="bold"
                    android:textSize="18sp"
                    />
                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginTop="8dp"
                    android:background="@android:color/darker_gray"
                    android:layout_below="@id/thirdCooling"/>

                <TextView
                    android:id="@+id/rate3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Rate"
                    android:layout_below="@id/thirdCooling"
                    android:layout_marginTop="16dp"
                    />

                <TextView
                    android:id="@+id/txtResultStep6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignBaseline="@id/rate3"/>

                <TextView
                    android:id="@+id/range3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Range"
                    android:layout_below="@id/rate3"
                    android:layout_marginTop="8dp"
                    />

                <TextView
                    android:id="@+id/txtResultStep7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignBaseline="@id/range3"/>

            </RelativeLayout>

        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            card_view:cardCornerRadius="0dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_below="@id/card_view4">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="16dp">

                <TextView
                    android:id="@+id/totalMinimumTime"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Total minimum time"
                    android:textStyle="bold"
                    />

                <TextView
                    android:id="@+id/txtResultStep8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:width="120dp"
                    android:layout_alignParentEnd="true"/>

            </RelativeLayout>

        </android.support.v7.widget.CardView>
    </RelativeLayout>

</ScrollView>

</RelativeLayout>

在下图中,您可以看到当我将光标放在ScrollView中时会发生什么。蓝线位于导航栏上方。 当我将光标放在ScrollView内的RelativeLayout时(这就是它应该是这样的)会发生什么: Android Studio

有人可以告诉我为什么ScrollView没有显示我的所有内容吗?

这就是它在模拟器上的表现。 Emulator

3 个答案:

答案 0 :(得分:2)

我已经使用NestedScrollView而不是ScrollView修复了它,因为片段是在CoordinatorLayout中启动的。我不知道只有NestedScrollVew会起作用。

答案 1 :(得分:0)

我想在评论中提出这个建议,但我的声誉不够高。首先,是你在模拟器或android studio中看到的第一个屏幕截图吗?

编辑:抱歉,只看到了链接的名称。你已经回答了这个问题。

尝试从RelativeLayout中删除scrollview。如果scrollView中包含所有内容,则不需要布局。我觉得宽度和高度的外部relativeLayout的“match_parent”字段是有问题的。值得一试。

答案 2 :(得分:0)

这是对一年前问题的回答。但我有同样的问题,无法滚动最后几个dps。我的顶级元素上还有一个带有内容的android:layout_marginTop。将其更改为ScrollView上的android:paddingTop解决了它。