【问题标题】:Nested Scroll View and list view show only 1 element嵌套滚动视图和列表视图仅显示 1 个元素
【发布时间】:2019-02-01 10:35:50
【问题描述】:

为什么我的嵌套滚动视图只显示一个元素?我试过 fillViewportthis solution...

更新:请查看我的完整代码。如果这可以解决我的问题,我会尝试添加一个 recyclerView、适配器和其他相关的东西。

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingTop="0dp"
    android:paddingStart="20dp"
    android:paddingEnd="20dp">


    <LinearLayout
        android:id="@+id/layoutDepart"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/layoutSearchViewDepart"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/background_input_no_padding"
            android:orientation="horizontal"
            android:weightSum="1">

            <android.support.v7.widget.SearchView
                android:id="@+id/searchDepart"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="0dp"
                android:layout_weight="0.95"
                android:background="@color/colorWhite"
                android:padding="0dp"
                app:defaultQueryHint="Arrêt de départ"
                app:iconifiedByDefault="false"
                app:queryHint="Arrêt de départ"

                >

                <SearchView
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" />
            </android.support.v7.widget.SearchView>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/resSelectionLigneDepart"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/layoutSearchViewDepart"
            android:background="@color/grayBg"
            android:orientation="vertical"
            android:visibility="visible"
            >

            <ListView
                android:id="@+id/listSearchViewDepart"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:dividerHeight="0dp"
                android:translationZ="15dp"
                android:visibility="visible"
                />
        </LinearLayout>


    </LinearLayout>    
</LinearLayout>

【问题讨论】:

    标签: listview kotlin scroll android-nestedscrollview


    【解决方案1】:

    您应该嵌套多个可滚动布局(嵌套滚动视图 + 列表视图)。 ListView 容器应该是不可滚动的 ViewGroup,如 LinearLayout。给你的 ListView 一个父 non-scrollable 布局

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true"
            xmlns:android="http://schemas.android.com/apk/res/android">
        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:paddingTop="0dp"
                android:paddingStart="20dp"
                android:paddingEnd="20dp">
    
    
            <LinearLayout
                    android:id="@+id/layoutDepart"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="10dp"
                    android:orientation="vertical">
    
                <LinearLayout
                        android:id="@+id/layoutSearchViewDepart"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@drawable/background_input_no_padding"
                        android:orientation="horizontal"
                        android:weightSum="1">
    
                    <android.support.v7.widget.SearchView
                            android:id="@+id/searchDepart"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_margin="0dp"
                            android:layout_weight="0.95"
                            android:background="@color/colorWhite"
                            android:padding="0dp"
                            app:defaultQueryHint="Arrêt de départ"
                            app:iconifiedByDefault="false"
                            app:queryHint="Arrêt de départ">
    
                        <SearchView
                                android:layout_width="wrap_content"
                                android:layout_height="match_parent" />
                    </android.support.v7.widget.SearchView>
    
                </LinearLayout>
    
                <LinearLayout
                        android:id="@+id/resSelectionLigneDepart"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/layoutSearchViewDepart"
                        android:background="@color/grayBg"
                        android:orientation="vertical"
                        android:visibility="visible"
                >
    
                    <ListView
                            android:id="@+id/listSearchViewDepart"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:divider="@null"
                            android:dividerHeight="0dp"
                            android:translationZ="15dp"
                            android:visibility="visible"
                    />
                </LinearLayout>
    
    
            </LinearLayout>
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
    

    【讨论】:

    • 如果我需要它怎么办?我的父布局应该是可滚动的
    • 有NestedScrollView是可以的,但是ListView的容器必须是不可滚动的布局,只需在RecyclerView和ScrollView之间加一个LinearLayout
    • 我暂时没有回收站视图,正在处理中
    • 我的意思是 ListView
    • 如果您的解决方案只是添加“fillViewport”,因为我说它不起作用,我只有 1 项。
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2017-05-24
    • 2018-12-07
    相关资源
    最近更新 更多