如何正确选择循环视图中的多个行?
我看到了这个例子:https://github.com/kiddBubu/RecyclerViewDemo,但因为当向上或向下移动屏幕值时,消失或更改或将位置转移到另一行时,就太糟糕了。
我试着显示行的更多内容。
例子:
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个方法,这是第一个
boolean [] check; check = new Boolean[Fragment2.recyclerView.size()];
Arrays.fill(array, Boolean.FALSE);。。。
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);
}
}发布于 2015-07-30 16:38:00
RecyclerView通过适配器连接数据结构,如ArrayList。在更新ArrayList时,您的回收视图的视图对象应该更改状态。
如果我要更新一个RecyclerView中的多个行,我将更新ArrayList中的值并调用mAdapter.notifyDataSetChanged()。因此,当我滚动时,元素已经正确地更新了。
https://stackoverflow.com/questions/31729069
复制相似问题