java - RecyclerView 无法水平滚动,但可以垂直滚动(加载图像失败)
问题描述
我想让我的回收视图水平而不是垂直滑动。当我尝试使其垂直时,它显示了所有 8 个项目,但是当我尝试使其水平时,它只显示 2 个项目和错误
当我尝试使用 VERTICAL 时,它显示了我想要的所有 8 个项目。
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false));
但是当我更改为 HORIZONTAL recyclerView.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,false));
它只加载 2 个图像,我无法水平滚动到下一个图像,它显示像这样的错误。
W/Choreographer:OPTS_INPUT:第一帧是在优化之前绘制的,所以跳过!
公共类 HomeFragment 扩展片段 {
private static final String TAG = "HomeFragment";
//Vars
private ArrayList<String> mImage = new ArrayList<>();
private ArrayList<String> mTitle = new ArrayList<>();
private ArrayList<String> mDesc = new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// initialize container view
View view = inflater.inflate(R.layout.fragment_home, container, false);
// pass container view to bitmap images so that will use to initialize recyclerView
initBitmapImages(view);
return view;
}
private void initBitmapImages(View view){
Log.d(TAG, "initBitmapImages: preparing bitmaps");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 1");
mDesc.add("This is foto 1");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 2");
mDesc.add("This is foto 2");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 3");
mDesc.add("This is foto 3");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 4");
mDesc.add("This is foto 4");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 5");
mDesc.add("This is foto 5");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 6");
mDesc.add("This is foto 6");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 7");
mDesc.add("This is foto 7");
mImage.add("https://i.redd.it/j6myfqglup501.jpg");
mTitle.add("Foto 8");
mDesc.add("This is foto 8");
initRecyclerView(view);
}
private void initRecyclerView(View view){
Log.d(TAG, "initRecyclerView: init recyclerView");
RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
RecyclerViewAdapter adapter = new RecyclerViewAdapter(mImage,mTitle,mDesc,getContext());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,false));
}
我希望我可以水平滚动到这个recycleview并加载所有8张图片谢谢:)
解决方案
尝试使用 Picasso 或 Glide 加载这样的图片
Picasso.get().load(imageList.getItem(position)).into(imageView);
为了让我们更准确地回答您,您可以提供 ViewHolder 的代码。
希望这个有帮助。
推荐阅读
- python - 如何返回字符串中每个单词出现的字典(Python)?
- java - 扫描仪没有字符输入会创建无限循环
- common-lisp - 如何重新创建由`make-symbol`创建的符号
- json - CollectionView.reloadData() 以错误的顺序输出单元格
- javascript - 使用 AJAX 发送信息,错误“mycustompage.htm?aspxerrorpath=”
- vue.js - 自定义分隔符不适用于 .vue 文件中的组件
- regex - 在 vim 上搜索并转换为小写
- processing - 按下按钮时在处理中停止和重新启动游戏
- swift - 调用静态方法而不重复类名
- android - 如何使用 rxjava 在存储库中提出改造请求并使用 LiveData 将其传递给 ViewModel?