滚动视图中的项目未显示在移动屏幕上

时间:2018-01-25 07:37:52

标签: android

我有一个布局文件,如下所示。我在一个列表视图和一个线性布局中有一个滚动视图。当我在移动设备上安装应用程序时,listview可以正常显示,但所有其他布局都是不可见的。我有另外两个不可见的textview。如何解决这个问题?

    <LinearLayout 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="match_parent"
             android:layout_height="match_parent"
             android:orientation="vertical"
             tools:context="com.example.app.Fragments.LFragment">

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ListView
                android:id="@+id/l_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:scrollbars="none"
                android:animationCache="false"
                android:scrollingCache="false"
                android:smoothScrollbar="true">
            </ListView>


            <android.support.v7.widget.CardView
                android:id="@+id/assmt"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:padding="10dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/colorAccent"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="Assessment"
                        android:textColor="@color/colorBlack"
                        android:textSize="16sp"/>

                    <TextView
                        android:id="@+id/assmt_name"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="sample"
                        android:textColor="@color/colorBlack"
                        android:textSize="16sp"/>

                </LinearLayout>

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

        </LinearLayout>

    </ScrollView>
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

ScrollView作为父母,如下所示:

<ScrollView 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="match_parent"
             android:layout_height="match_parent"
             tools:context="com.example.app.Fragments.LFragment">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ListView
                android:id="@+id/l_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:scrollbars="none"
                android:animationCache="false"
                android:scrollingCache="false"
                android:smoothScrollbar="true">
            </ListView>


            <android.support.v7.widget.CardView
                android:id="@+id/assmt"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:padding="10dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/colorAccent"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="Assessment"
                        android:textColor="@color/colorBlack"
                        android:textSize="16sp"/>

                    <TextView
                        android:id="@+id/assmt_name"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="sample"
                        android:textColor="@color/colorBlack"
                        android:textSize="16sp"/>

                </LinearLayout>

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

        </LinearLayout>

    </LinearLayout>
</ScrollView>

答案 1 :(得分:1)

父视图(ScrollView)有一个单独的滚动选项,而ListView有一个单独的滚动,所以当你尝试使用滚动列表时滚动选项只能处理这种情况,父滚动不起作用。

请尝试使用NestedScrollView。

NestedScrollView就像ScrollView一样,但它支持在新旧版本的Android上充当嵌套滚动父级和子级。默认情况下启用嵌套滚动。

https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html

示例:https://inducesmile.com/android-tips/android-recyclerview-inside-nestedscrollview-example/

答案 2 :(得分:0)

对于LinearLayout中的视图使用android:layout_weight属性。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="1"
        android:orientation="vertical">

        <ListView
            android:id="@+id/l_list"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".8"
            android:divider="@null"
            android:scrollbars="none"
            android:animationCache="false"
            android:scrollingCache="false"
            android:smoothScrollbar="true">
        </ListView>


        <android.support.v7.widget.CardView
            android:id="@+id/assmt"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".2"
            android:layout_margin="10dp"
            android:padding="10dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/colorAccent"
                    android:gravity="center"
                    android:padding="10dp"
                    android:text="Assessment"
                    android:textSize="16sp"/>

                <TextView
                    android:id="@+id/assmt_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:padding="10dp"
                    android:text="sample"
                    android:textSize="16sp"/>

            </LinearLayout>

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

    </LinearLayout>

</ScrollView>