Scrollview 不使用 2 listview 滚动

Posted

技术标签:

【中文标题】Scrollview 不使用 2 listview 滚动【英文标题】:Scrollview doesn't scroll with 2 listview 【发布时间】:2016-06-23 18:06:23 【问题描述】:

我搜索了很多关于滚动视图的主题,但没有人可以解决我的问题:/ 如果有人可以帮助我:) 当我从服务器发出请求时,每个列表视图都会打印一些人 通常,当我向下滚动列表时,第二个列表会出现,但不会出现

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:background="@drawable/selector_for_background_white"
    android:orientation="vertical">

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_
        android:layout_
        android:background="@drawable/selector_for_background_white"
        android:fillViewport="true">

        <LinearLayout
            android:layout_
            android:layout_>

            <LinearLayout
                android:id="@+id/layoutScrollResult"
                android:layout_
                android:layout_
                android:orientation="vertical">

                <RelativeLayout
                    android:layout_
                    android:layout_
                    android:background="@drawable/selector_for_background_white">

                    <LinearLayout
                        android:id="@+id/layout2"
                        android:layout_
                        android:layout_
                        android:orientation="horizontal">

                        <com.whask.whask.utils.font.FontTextView
                            android:id="@+id/text_hot"
                            android:layout_
                            android:layout_
                            android:layout_centerVertical="true"
                            android:layout_gravity="center"
                            android:layout_marginLeft="10dp"
                            android:layout_marginStart="10dp"
                            android:background="@android:color/transparent"
                            android:text="5 HOT"
                            android:textSize="@dimen/abc_text_size_medium_material"
                            app:font="Neo-Sans-Std-Medium.otf"/>
                    </LinearLayout>


                    <ListView
                        android:id="@+id/result_whask_listview_view"
                        android:layout_
                        android:layout_
                        android:layout_below="@+id/layout2">
                    </ListView>

                    <LinearLayout
                        android:id="@+id/layout3"
                        android:layout_
                        android:layout_
                        android:layout_below="@+id/result_whask_listview_view"
                        android:orientation="horizontal">

                        <com.whask.whask.utils.font.FontTextView
                            android:id="@+id/text_not"
                            android:layout_
                            android:layout_
                            android:layout_centerVertical="true"
                            android:layout_gravity="center"
                            android:layout_marginLeft="10dp"
                            android:layout_marginStart="10dp"
                            android:background="@android:color/transparent"
                            android:text="2 NOT"
                            android:textSize="@dimen/abc_text_size_medium_material"
                            app:font="Neo-Sans-Std-Medium.otf"/>
                    </LinearLayout>

                    <ListView
                        android:id="@+id/result_whask_listview_view_no"
                        android:layout_
                        android:layout_
                        android:layout_below="@+id/layout3"
                        android:background="@color/my_whask_white_color">
                    </ListView>

                </RelativeLayout>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

</LinearLayout>

【问题讨论】:

你不应该使用滚动视图和列表视图,因为列表视图有它自己的滚动。而不是使用列表视图在线性或框架布局中膨胀您的项目。通过这种方式,您可以轻松实现包装内容功能,因为列表视图无法正常使用包装内容 你想在滚动视图中滚动列表视图吗? @Mavrick Rmx 如果我不使用 ScrollView,我的 2 FontTextView 将不会滚动,而我的第二个 listview 停留在底部,我看不到这些元素,我需要我的 FontTextView 也滚动@VivekMishra 我并不是说你不应该使用滚动视图。我是说不要在滚动视图中使用列表视图。 是的,这就是我想要的,然后我在屏幕底部的 listView 可以替换第一个 listview @Rushabh042 【参考方案1】:

如果你想在 Scrollview 中滚动列表视图,那么就这样做吧。

 ListView result_whask_listview_view;
 result_whask_listview_view = (ListView)findViewById(R.id.result_whask_listview_view);

 result_whask_listview_view.setOnTouchListener(new ListView.OnTouchListener() 
                    @Override
                    public boolean onTouch(View v, MotionEvent event) 
                        int action = event.getAction();
                        switch (action) 
                            case MotionEvent.ACTION_DOWN:
                                // Disallow ScrollView to intercept touch events.
                                v.getParent().requestDisallowInterceptTouchEvent(true);
                                break;

                            case MotionEvent.ACTION_UP:
                                // Allow ScrollView to intercept touch events.
                                v.getParent().requestDisallowInterceptTouchEvent(false);
                                break;
                        

                        // Handle ListView touch events.
                        v.onTouchEvent(event);
                        return true;
                    
                );

这样你可以在滚动视图中滚动列表视图。

希望对你有帮助:)

【讨论】:

【参考方案2】:

Listview 有自己的滚动属性,所以不要在滚动视图中使用... 谢谢

【讨论】:

【参考方案3】:

请勿ScrollView 中使用ListViewListView 本身具有滚动属性,您不必使用另一个 ScrollView 使其滚动。请改用LinearLayout

【讨论】:

以上是关于Scrollview 不使用 2 listview 滚动的主要内容,如果未能解决你的问题,请参考以下文章

解决在ScrollView中套用ListView显示不正常

为啥listview在scrollview中显示不全

求助scrollview嵌套viewpager 放listview 不能滑动

android scrollview 嵌套listview 不滑动

使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突

我可以在不使用 ScrollView/ListView 的情况下使用 Pull to Refresh 吗?