ScrollView里面的ListView(Mine问题不同)

时间:2018-03-14 04:10:09

标签: android xml android-layout listview scrollview

我有抽屉布局。我已经放置了一个ViewPager用于滑动Image和Tab Layout for dots,在我想要一个TextView和一个ListView再次一个TextView和ListView之后,它会进行4次。所以,我希望我的整个屏幕都可以滚动。这是问题,如果我正在修复ListView应用程序的高度,它从Bottom开始,如果我使用匹配父项,则列表视图不会滚动,它就像线性布局一样,下面的任何内容都不显示。如果我在高度中使用换行内容,列表视图是可滚动的,但在列表视图后没有显示,因为整个屏幕不滚动。

MainActivity.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:background="#f5f5f5"
    android:id="@+id/drawer"
    android:layout_height="match_parent"
    tools:context="com.tollywood2bollywood.t2bliveapp.HomeActivity">

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

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

                <!--ViewPager for sliding Image-->
                <android.support.v4.view.ViewPager
                    android:layout_width="match_parent"
                    android:layout_height="270dp"
                    android:id="@+id/top_stories_pager">
                </android.support.v4.view.ViewPager>

                <!--For dots used in scrollable image-->
                <android.support.design.widget.TabLayout
                    android:layout_width="match_parent"
                    android:id="@+id/tab_layout"
                    app:tabBackground="@drawable/tab_selector"
                    app:tabGravity="center"
                    app:tabIndicatorHeight="0dp"
                    android:layout_height="wrap_content"/>

                <!--List View Starts -->

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/recent_stories"
                    android:layout_marginTop="5dp"
                    android:layout_marginStart="3dp"
                    android:text="RECENT STORIES"/>

                <ListView
                    android:layout_width="match_parent"
                    android:id="@+id/recent_stories_listview"
                    android:layout_height="wrap_content"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="ENTERTAINMENT"
                    android:layout_marginTop="5dp"
                    android:layout_marginStart="3dp"/>
                <ListView
                    android:layout_width="match_parent"
                    android:id="@+id/entertainment_listview"
                    android:layout_height="match_parent"/>
            </LinearLayout>
    </ScrollView>

    <!--Navigation Drawer setting-->
    <android.support.design.widget.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:itemTextColor="@color/colorPrimaryDark"
        app:itemIconTint="@color/colorPrimaryDark"
        app:menu="@menu/drawermenu"
        android:layout_gravity="start"
        android:background="#fff">
    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>

如果我使用的是上面的xml,则不显示Enterntainment TextView和List View。请帮忙。我正在制作新闻应用。

3 个答案:

答案 0 :(得分:2)

ScrollView更改为NestedScrollView,将ListView更改为RecyclerView

<android.support.v4.widget.DrawerLayout 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:background="#f5f5f5"
        android:id="@+id/drawer"
        android:layout_height="match_parent"
        tools:context="com.tollywood2bollywood.t2bliveapp.HomeActivity">

        <NestedScrollView
            android:layout_width="match_parent"
            android:fillViewport="true"
            android:layout_height="match_parent">

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

                    <!--ViewPager for sliding Image-->
                    <android.support.v4.view.ViewPager
                        android:layout_width="match_parent"
                        android:layout_height="270dp"
                        android:id="@+id/top_stories_pager">
                    </android.support.v4.view.ViewPager>

                    <!--For dots used in scrollable image-->
                    <android.support.design.widget.TabLayout
                        android:layout_width="match_parent"
                        android:id="@+id/tab_layout"
                        app:tabBackground="@drawable/tab_selector"
                        app:tabGravity="center"
                        app:tabIndicatorHeight="0dp"
                        android:layout_height="wrap_content"/>

                    <!--List View Starts -->

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/recent_stories"
                        android:layout_marginTop="5dp"
                        android:layout_marginStart="3dp"
                        android:text="RECENT STORIES"/>

                    <RecyclerView
                        android:layout_width="match_parent"
                        android:clipToPadding = "false"
                        android:paddingBottom = "50dp"
                        android:id="@+id/recent_stories_listview"
                        android:layout_height="wrap_content"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="ENTERTAINMENT"
                        android:layout_marginTop="5dp"
                        android:layout_marginStart="3dp"/>
                    <RecyclerView
                        android:layout_width="match_parent"
                        android:id="@+id/entertainment_listview"
                        android:clipToPadding = "false"
                        android:paddingBottom = "50dp"
                        android:layout_height="match_parent"/>
                </LinearLayout>
        </NestedScrollView>

        <!--Navigation Drawer setting-->
        <android.support.design.widget.NavigationView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            app:itemTextColor="@color/colorPrimaryDark"
            app:itemIconTint="@color/colorPrimaryDark"
            app:menu="@menu/drawermenu"
            android:layout_gravity="start"
            android:background="#fff">
        </android.support.design.widget.NavigationView>

    </android.support.v4.widget.DrawerLayout>
  

here is link for migrate from ListView to RecyclerView

答案 1 :(得分:0)

请使用NestedScrollView,它类似于ScrollView,但它将支持充当嵌套滚动父级和子级。请查看此信息以获取更多信息和样本。

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

答案 2 :(得分:0)

将您的滚动视图更改为nestedscrollview