首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RecycleView选择倍数

RecycleView选择倍数
EN

Stack Overflow用户
提问于 2015-07-30 16:18:24
回答 1查看 169关注 0票数 0

如何正确选择循环视图中的多个行?

我看到了这个例子:https://github.com/kiddBubu/RecyclerViewDemo,但因为当向上或向下移动屏幕值时,消失或更改或将位置转移到另一行时,就太糟糕了。

我试着显示行的更多内容。

例子:

代码语言:javascript
复制
Row 1 (uncollapsed)
Row 2 (uncollapsed) - > click - > (collapsed) add + padding or margin
Row 3 (uncollapsed)
.
.
Row x (uncollapsed)

但是当我尝试向上或向下移动列表时,所选的值是随机的,而其他视图会自动更改,我不知道为什么,ListView,RecycleView等于……

我知道如何处理带有“标记”的listview法线(但也很糟糕)。

我不想要“膨胀者观”。

有什么帮助吗?

更新

我想要这个效果:http://i.stack.imgur.com/fuFFl.png

我没有在谷歌找到任何东西,也没有找到一个完整的例子。

代码:

我尝试了4或5个方法,这是第一个

代码语言:javascript
复制
boolean [] check; check = new Boolean[Fragment2.recyclerView.size()];



Arrays.fill(array, Boolean.FALSE);

。。。

代码语言:javascript
复制
 public class ViewHolder extends RecyclerView.ViewHolder {

        // l1
        public TextView text1,text2,text3,text4;
        LinearLayout imgLayout,l1;

        // l2
        public TextView text5,text6,text7;
        LinearLayout l2;
        public ViewHolder(final View itemView) {

            super(itemView);

            l1 = (LinearLayout) itemView.findViewById(R.id.l1);
            imgLayout = (LinearLayout) itemView.findViewById(R.id.imgLayout);
            text1 = (TextView) itemView.findViewById(R.id.text1);
            text2 = (TextView) itemView.findViewById(R.id.text2);
            text3 = (TextView) itemView.findViewById(R.id.text3);
            text4 = (TextView) itemView.findViewById(R.id.text4);

            l2 = (LinearLayout) itemView.findViewById(R.id.l2);
            text5 = (TextView) itemView.findViewById(R.id.text5);
            text6 = (TextView) itemView.findViewById(R.id.text6);
            text7 = (TextView) itemView.findViewById(R.id.text7);

            int itemPosition = Fragment2.recyclerView.getChildPosition(itemView);


            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (!check[itemPosition]) {
                        l1.setVisibility(View.VISIBLE);
                        l1.setEnabled(true);
                        check[itemPosition] = true;

                        l2.setVisibility(View.GONE);
                        l2.setEnabled(false);

                    } else {
                        l1.setVisibility(View.GONE);
                        l1.setEnabled(false);
                        check[itemPosition] = false;

                        l2.setVisibility(View.VISIBLE);
                        l2.setEnabled(true);
                    }
                }
EN

回答 1

Stack Overflow用户

发布于 2015-07-30 16:38:00

RecyclerView通过适配器连接数据结构,如ArrayList。在更新ArrayList时,您的回收视图的视图对象应该更改状态。

如果我要更新一个RecyclerView中的多个行,我将更新ArrayList中的值并调用mAdapter.notifyDataSetChanged()。因此,当我滚动时,元素已经正确地更新了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31729069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档