android recyclerview使用glide以瀑布流显示,并绑定菜单

本文介绍了如何在Android中使用RecyclerView替代GridView,并实现瀑布流显示。通过StaggeredGridLayoutManager实现瀑布流布局,利用Glide 4.x加载图片。详细讲解了RecyclerView的滑动刷新数据、添加点击事件以及结合菜单的操作,包括滑动监听、菜单注册与事件处理的方法。
摘要由CSDN通过智能技术生成

引言

RecyclerView是Google建议使用用于替换GridView,ListView等控件的新控件,这里主要记录在替换过程中所遇到的一些问题, 以及它们的解决办法。

如何定义RecyclerView

RecyclerView相比于GridView等控件,比较大的区别有:
1、默认使用ViewHolder进行View的重用。
2、使用LayoutManager进行布局的控制,更加灵活。
在使用时,需要分别定义并设置:

RecyclerView recyclerView = findViewById(R.id.content_grid_view);
mRecyclerViewAdapter = new RecyclerViewAdapter(MainPage.this);
recyclerView.setAdapter(mRecyclerViewAdapter);
int column = getResources().getInteger(R.integer.grid_columns);
final StaggeredGridLayoutManager layoutManager = 
	new StaggeredGridLayoutManager(column, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);

其中StaggeredGridLayoutManager是原生提供的瀑布流布局,只需要指定列数及方向即可。
注意到这里绑定了我们自定义的RecyclerViewAdapter,其实现如下:

class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.RecyclerViewHolder> {
   
    private Context mAdapterContext;

    private RecyclerViewAdapter(Context context) {
   
        mAdapterContext = context;
    }

    @Override
    public @NonNull RecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
   
        View view = LayoutInflater.from(mAdapterContext).inflate(R.layout.grid_item, parent, false);
        return new RecyclerViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerViewHolder viewHolder, int position) {
   
        HashMap<String, String> map = mList.get(position);
        if (map == null) {
   
            Log.d(TAG, "map is null");
            return;
        }
        String imageData = map.get(IMAGE_KEY);
        String textData = map.get(TEXT_KEY);

        Util.setPicFromUrl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值