我有一个水平回收视图。每个子级包含一个TextView和一个垂直RecyclerView。垂直RecyclerView的子级仅包含TextView。
垂直滚动非常平滑,但水平滚动滞后很多。我已经尝试在onBindViewHolder中使用swapAdapter,而不是setAdapter,但这并没有解决问题。我也尝试过更改数据集并调用notifyDataSetChanged(),但这也没有帮助。
private SparseArray<GroupArrayAdapter> adapters;
private ArrayList<Category> categories;
private Activity context;
public CategoryArrayAdapter(Context context, ArrayList<Category> categories) {
this.categories = categories;
this.context = (Activity)context;
adapters = new SparseArray<GroupArrayAdapter>();
for (int i = 0; i < categories.size(); i++) {
adapters.append(i, new GroupArrayAdapter(context, categories.get(i).getGroups()));
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public RecyclerView list;
public ViewHolder(View view) {
super(view);
name = (TextView) view.findViewById(R.id.lblCategoryName);
list = (RecyclerView) view.findViewById(R.id.lstGroups);
list.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
list.addItemDecoration(new GroupItemDecoration((int)context.getResources().getDimension(R.dimen.gap)));
//list.setAdapter(new GroupArrayAdapter(context, new ArrayList<Group>()));
}
}
@Override
public int getItemCount() {
return categories.size();
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
Category category = categories.get(position);
viewHolder.name.setText(category.getName());
viewHolder.list.swapAdapter(adapters.get(position), false);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_category, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
垂直回收器View.Adapter
private ArrayList<Group> groups;
public GroupArrayAdapter(Context context, ArrayList<Group> groups) {
this.groups = groups;
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public ViewHolder(View view) {
super(view);
name = (TextView) view.findViewById(R.id.lblGroupName);
}
}
@Override
public int getItemCount() {
return groups.size();
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
Group group = groups.get(position);
viewHolder.name.setText(group.getName());
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_group_text, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
试着用这个
reyclerView.setHasFixedSize(true)
我有一个父回收器视图,其中包含一个水平回收器视图作为其项目。在其中,我将显示分类视频。当我开始滚动水平回收器视图时,应用程序崩溃。 错误是: 我的代码是category类 垂直适配器 水平适配器
我在ViewPager中的NestedScrollView中有一个水平的RecyclerView。现在当我尝试滚动RecyclerView时,有时它滚动,但有时只有ViewPager滚动。 这就是我的RecyclerView XML的样子: 到目前为止,我所尝试的,正如你所看到的,我写了一个自定义的viewpager。我尝试告诉ViewPager,如果滚动来自RecyclerView,它就不能滚动
在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:
我正在使用下面的代码创建一个回收器视图。recyclerview有一个网格布局管理器,其项计数最多为每行2个。 不幸的是,我嵌套在ConstraintLayout中的回收器视图根本没有滚动。我错过了什么?约束布局是否支持相同的?
所以我在垂直ScrollView中有一个水平回收器视图。我的布局中的所有内容都显示得很好,并且都按照我想要的方向滚动,并且它做得很好。 我唯一的问题是,RecyclerView位于ScrollView中其他内容的下方,当RecyclerViewer部分可见时,它会在启动时将RecyclerView的底部与屏幕的底部对齐。这意味着RecyclerView上方的内容被推离屏幕。 有谁知道为什么会发生这
我做了一个水平循环视图,效果很好(多亏了这个),但滚动和数据的方向是从左向右扩展的;那么,我该如何更改RecyclerView滚动方向,如下图所示? 我的代码: