首页 > 解决方案 > 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));
}

我希望我可以水平滚动到这个rec​​ycleview并加载所有8张图片谢谢:)

标签: javaandroid

解决方案


尝试使用 Picasso 或 Glide 加载这样的图片

Picasso.get().load(imageList.getItem(position)).into(imageView);

为了让我们更准确地回答您,您可以提供 ViewHolder 的代码。

希望这个有帮助。


推荐阅读