如何让孩子RecylerView垂直滚动?

时间:2016-10-21 07:42:38

标签: android android-recyclerview

我正在实现嵌套的recyleview,我的视图包含两个recylerview,并且两个都必须按照实现方式垂直滚动,但是当我开始滚动子recylerview然后父recylerview开始滚动时我遇到了问题。

我需要什么,当我滚动子回收视图然后父回收不应滚动,当我开始父回收滚动然后孩子不应滚动。

我的父回收是白色框,其中包含订单ID 997,然后是996,依此类推。

我的孩子回收是重复按钮下方的框,包含和订单ID 997的项目是金牛座2518-10 chakka,金牛座3118 - 12 chakka和这两个下面还有三个我们无法看到的四个项目,用户向上滚动时可以看到。 Snapshot

我曾尝试过:

在父版面上:

pip install -e git+git://github.com/django/django-formtools#egg=django-formtools

OnChildLayout:

materialRecylerAdapter = new MaterialRecylerAdapter(getActivity(), (ArrayList<OrderPogo>) myOrderArrayList,nextFragmentFlag);
            WrappingLinearLayoutManager mLayoutManager= new WrappingLinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false);
            recyclerView.setLayoutManager(mLayoutManager);
            recyclerView.setItemAnimator(new DefaultItemAnimator());
            recyclerView.setAdapter(materialRecylerAdapter);

2 个答案:

答案 0 :(得分:0)

如果您未从ChildRecyclerView进行设置,则希望您从父适配器的onBindViewHolder设置onBindViewHolder,然后请从onBindViewHolder进行设置。

像这样......

ParentAdapter onBindViewHolder

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {

    holder.mChildRecyclerView.setLayoutManager(new LinearLayout(context));
    holder.mChildRecyclerView.setAnimation(null);

    //scroll vertically
    holder.mChildRecyclerView.setNestedScrollingEnabled(false);

    ChildAdapter childAdapter = new ChildAdapter(context);

    //setter Method of ChildAdapter to set Data
    childAdapter.setList(parentDataList.get(position).getChildList());

    //set childAdapter
    holder.mChildRecyclerView.setAdapter(childAdapter);
}

这就是我设置ChildAdapter的方法。希望也和你合作。

答案 1 :(得分:0)

禁用RecyclerView的嵌套滚动。

recyclerView.setNestedScrollingEnabled(false);