安卓布局如何让 listview 和listview上的布局一起滚动

xml布局如下 但是不能实现我说的listview 和上面布局一起滚动

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">
    <include layout="@layout/top" />
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:background="#fff">
                <com.jude.rollviewpager.RollPagerView
                    android:id="@+id/roll_view_pager"
                    android:layout_width="match_parent"
                    android:layout_height="100dp"
                    app:rollviewpager_play_delay="3000"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:background="#fff"
                android:orientation="vertical"
                android:layout_marginBottom="10dp">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="85dp"
                    android:background="#fff"
                    android:orientation="horizontal">
                    <LinearLayout
                        android:id="@+id/home_menu_cyms"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:background="@drawable/me_selecter"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="35dp"
                            android:layout_height="35dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="15dp"
                            android:src="@drawable/cyms"/>
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:gravity="center"
                            android:layout_weight="1"
                            android:textSize="13dp"
                            android:text="餐饮美食"/>
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/home_menu_xxyl"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:background="@drawable/me_selecter"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="35dp"
                            android:layout_height="35dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="15dp"
                            android:src="@drawable/ylxx"/>
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:gravity="center"
                            android:textSize="13dp"
                            android:text="休闲娱乐"/>
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/home_menu_jdzs"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:background="@drawable/me_selecter"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="35dp"
                            android:layout_height="35dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="15dp"
                            android:src="@drawable/jdzs"/>
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:gravity="center"
                            android:textSize="13dp"
                            android:text="酒店住宿"/>
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/home_menu_qcfw"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:background="@drawable/me_selecter"

                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="35dp"
                            android:layout_height="35dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="15dp"
                            android:src="@drawable/qcfw"/>
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:gravity="center"
                            android:textSize="13dp"
                            android:text="汽车服务"/>
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="85dp"
                    android:background="#fff"

                    android:orientation="horizontal">
                    <LinearLayout
                        android:id="@+id/home_menu_lrmy"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:background="@drawable/me_selecter"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="35dp"
                            android:layout_height="35dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="10dp"
                            android:src="@drawable/lrmy"/>
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:gravity="center"
                            android:layout_weight="1"
                            android:textSize="13dp"
                            android:text="丽人美业"/>
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/home_menu_smfw"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:background="@drawable/me_selecter"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="35dp"
                            android:layout_height="35dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="10dp"
                            android:src="@drawable/shgw"/>
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:gravity="center"
                            android:textSize="13dp"
                            android:text="生活服务"/>
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:layout_marginTop="20dp"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="30dp"
                            android:layout_height="30dp"
                            android:layout_gravity="center"
                            />
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:gravity="center"
                            android:text=""/>
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:clickable="true"
                        android:layout_marginTop="20dp"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="30dp"
                            android:layout_height="30dp"
                            android:layout_gravity="center"
                            />
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:gravity="center"
                            android:text=""/>
                    </LinearLayout>

                </LinearLayout>
            </LinearLayout>
            <ListView
                android:id="@+id/home_list_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:dividerHeight="0.7dp"
                android:divider="#f5f5f5">
            </ListView>
        </LinearLayout>
    </ScrollView>




</LinearLayout>
阅读 5.1k
7 个回答

itemType布局,就用一个listview去搞

新手上路,请多包涵

用listview调用下面的方法,让listview完全展开
public class ListViewUtil {

/**
 * 重新计算listview的高度
 *
 * @param listView
 */
public static void setListViewHeightBasedOnChildren(ListView listView) {
    if (listView == null)
        return;
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        return;
    }
    int totalHeight = 0;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight
            + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
}

}

如果可以接受把listview换成recyclerview实现的话,其实是有个非常方便的方法
1.将scrollview改成nestedscrollview
2.recyclerview.setNestedScrollEnabled(false)

新手上路,请多包涵

把listview和上边的布局放到一个布局里,不过别用ScrollView,用NestScrollView

解决问题的方法有很多,除了楼上各层朋友的方法,我也说一种:将ScrollView换成RecyclerView,第一个LIstView是第一个item,的二个ListView是第二个item,然后就完了,没有滑动冲突。

滑动监听调用滚动的代码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题