希望让布局可以横向一页一页滑动
Recycleview.setOnFlingListener(null);//要加上这一行,不然可能会报错
new LinearSnapHelper().attachToRecyclerView(Recycleview);//可以一次滑动多页
new PagerSnapHelper().attachToRecyclerView(Recycleview);//每次只滑动一页
//网格布局横向滑动想要使用这个,是有问题的,可以将一列当成一个item使用,再把网格布局改成线性布局管理
希望局部刷新某一个item
notifyItemChanged(position,1);//调用这个方法来进行局部刷新 第一个参数是:需要刷新的布局的下标,第二个参数可以随便传
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position, @NonNull List payloads) {
super.onBindViewHolder(holder, position, payloads);
//判断是否为空,来判断是否需要更新
if (payloads.isEmpty()){//如果为空,则正常的加载自己的布局调用onBindViewHolder方法
onBindViewHolder(holder,position);
}else {//如果不为空说明需要对它进行局部刷新
//将需要进行刷新的item的逻辑写在这里
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int position) {
}
RecyclerView调用notifyItemChanged闪烁问题
((SimpleItemAnimator) Recycleview.getItemAnimator()).setSupportsChangeAnimations(false);
Recycleview 的 descendantFocusability属性
android:descendantFocusability=”afterDescendants”:子控件优先获得焦点,当没有任何一个子控件获取到焦点时
(即子控件不需要获取焦点时),父控件才会获取到焦点;
android:descendantFocusability=”beforeDescendants”:父控件会优先于子控件而获取到焦点;
android:descendantFocusability=”blockDescendants”:父控件会阻塞子控件获取焦点,即父控件会覆盖子类控件而直接获得焦点
(只有父控件获得焦点)。
获取焦点
focusable表示移动光标时 是否能聚焦到组件上,
比如按钮,就是移动光标是按钮会变成选中状态,
如果focusable为false,那么就跳过此组件,下一个组件变成选中状态。
focusableInTouchMode可以通过触摸获取焦点。
当ScrollView包着Recycleview有滑动冲突时,将ScrollView改成v4包下的NestedScrollView