当前位置: 首页 > 知识库问答 >
问题:

ScrollView内部的RecyclerView-ScrollView不工作[重复]

丌官子安
2023-03-14

我正在使用最新的支持设计(compile'com.android.support:design:'),23.2版本中的支持设计应该已经解决了ScrollView内部的RecyclerView问题。RecyclerView和ExpandableListView滚动都能很好地工作。但是当ExpandableListView太长时,我希望能够向上滚动布局,以便可以看到其余部分时,scrollview就无法工作。

片段:

 myRecyclerView = (RecyclerView) view.findViewById(R.id.myRecyclerView);
    myRecyclerView.setNestedScrollingEnabled(false);

    LinearLayoutManager layoutManager = new LinearLayoutManager( mContext, LinearLayoutManager.HORIZONTAL, false );
    layoutManager.setAutoMeasureEnabled(true);
    myRecyclerView.setLayoutManager(layoutManager);

    MyListAdapter myListAdapter = new MyListAdapter(recyclerDataList, getActivity());
    myRecyclerView.setAdapter(myListAdapter);

xml:

 <ScrollView
            android:id="@+id/scrollView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:fillViewport="true">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/headerText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="header text"
                    android:layout_marginRight="10dp"/>

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/myRecyclerView"
                    android:layout_below="@id/headerText"
                    android:scrollbars="none"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>


                <ExpandableListView
                    android:id="@+id/expandableList"
                    android:layout_below="@id/myRecyclerView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:divider="1dp"
                    android:dividerHeight="0dp"
                    android:groupIndicator="@null"
                    android:listSelector="@android:color/transparent"
                    android:showDividers="middle" >
                </ExpandableListView>

            </RelativeLayout>
    </ScrollView>

共有2个答案

程俊健
2023-03-14

你应该这样做:

执行RecyclerView的OnItemTouchListener,并禁止在操作\u MOVE上发生父触摸事件。

recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
    @Override
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
        int action = e.getAction();
        switch (action) {
            case MotionEvent.ACTION_DOWN:
                 recyclerView.getParent().requestDisallowInterceptTouchEvent(true);
             break;
            case MotionEvent.ACTION_UP:
                 recyclerView.getParent().requestDisallowInterceptTouchEvent(false);
             break;
            case MotionEvent.ACTION_MOVE:
                 recyclerView.getParent().requestDisallowInterceptTouchEvent(true);         
             break;
        }
        return false;
    }

    @Override
    public void onTouchEvent(RecyclerView rv, MotionEvent e) {

    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
});

希望这对你有帮助。

郗河
2023-03-14

您需要在运行时计算listview高度,不能像这样在滚动视图中使用listview或消耗性listview。

滚动视图内的Android列表视图

 类似资料:
  • 我正在尝试实现一个布局,它在同一布局中包含RecyclerView和ScrollView。 布局模板: 问题:我可以滚动到的最后一个元素 我尝试过的事情: 中的 卡片视图(现在包含)-可以查看卡片直到 最初的想法是使用而不是使用来实现这个,后者的视图类型之一是,但我得到的结果与使用完全相同

  • 我有一个xml布局,它有以下视图:滚动视图->Relationvelayout->Some views+Tablayout+ViewPager->RecylerView(在ViewPager的片段中)。ViewPager有一些固定的高度(保持它“wrap_content”根本不会显示它)。现在的问题是Recylerview永远不会滚动。我已经尝试了几个已经发布的解决方案,比如在“嵌套滚动视图”中包

  • 我在嵌套滚动视图中实现了一个回收视图。但是循环视图滚动到位置方法不起作用。 下面是我的示例代码 下面是滚动的方法

  • 我试图在ScrollView中有一个RecyclerView。我的问题是,当我滚动RecyclerView时,这并不“平滑”:一旦你松开手指,滚动就会立即停止。 我在片段中的布局是: 滚动视图 线性布局 文本视图 回收r查看 按钮 我尝试禁用嵌套滚动: 以及mRecyclerView的包装内容: 获得我想要的平滑滚动,但通过这种方式,RecyclerView的高度比它应该的要小(并且它不再滚动,所

  • 我有一个包含ImageView和RecyclerView的Scrollview。如果导航抽屉打开然后关闭了RecyclerView自动滚动到顶部,如何停止?

  • 我在ScrollView中的ConstraintLayout中有一个floatingActionButton 问题是按钮随UI上下滚动 PS:我不知道这是否重要,但是scrollView在一个drawerLayout里面