前言
正文
这里只是简单记录一下。
xml
<androidx.recyclerview.widget.RecyclerView android:id="@+id/list_rv_view" android:layout_width="1000dp" android:layout_height="600dp" android:layout_weight="1" />
java
ItemAdapter
适配器
public class MediaAdapter extends RecyclerView.Adapter<MediaAdapter.ViewHolder> { private List<FileInfo> mList = new ArrayList<>(); @NonNull @Override public MediaAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(MediaApp.getContext()).inflate(R.layout.layout_item_media, parent, false)); } @Override public void onBindViewHolder(@NonNull MediaAdapter.ViewHolder holder, int position) { if (getItemCount() > 0) { //略 } } @Override public int getItemCount() { return mList.size(); } @SuppressLint("NotifyDataSetChanged") public void updateList(List<FileInfo> list) { if (list == null || list.isEmpty()) { mList.clear(); } else { mList = new ArrayList<>(list); } notifyDataSetChanged(); } public static class ViewHolder extends RecyclerView.ViewHolder { private final ImageView mIvIcon; private final TextView mTvName; public ViewHolder(@NonNull View itemView) { super(itemView); mIvIcon = itemView.findViewById(R.id.item_iv_icon); mTvName = itemView.findViewById(R.id.item_tv_name); } } }
LinearLayoutManager
private RecyclerView mRecyclerView; private LinearLayoutManager mLinearLayoutManager; mRecyclerView = mRootView.findViewById(R.id.list_rv_view); //线性垂直显示 mLinearLayoutManager = new LinearLayoutManager(MusicApp.getContext()); mLinearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.addItemDecoration(new DividerItemDecoration(MusicApp.getContext(), DividerItemDecoration.VERTICAL)); mRecyclerView.setLayoutManager(mLinearLayoutManager); mRecyclerView.setAdapter(mItemAdapter);
GridLayoutManager
mMediaAdapter = new MediaAdapter(); //一行6个 mRecyclerView.setLayoutManager(new GridLayoutManager(MediaApp.getContext(), 6)); mRecyclerView.setAdapter(mItemAdapter);
指定间距
需要重写RecyclerView.ItemDecoration
public class SpacesItemDecoration extends RecyclerView.ItemDecoration { private final int left, top, right, bottom; public SpacesItemDecoration(int left, int top, int right, int bottom) { this.left = left; this.top = top; this.right = right; this.bottom = bottom; } @Override public void getItemOffsets(Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { //看需求修改 outRect.bottom = bottom; outRect.left = left; outRect.right = right; outRect.top = top; } }
设置一下即可。
mRecyclerView.addItemDecoration(new SpacesItemDecoration(30, 30, 30, 30));
滚动指定位置
//position是指定位置 //方式一 mRecyclerView.scrollToPosition(position); //方式二 mLinearLayoutManager.scrollToPosition(position); //方式三 //position是指定位置 ,y是固定高度位置 mLinearLayoutManager.scrollToPositionWithOffset(position, y);
参考文章
-
《
历史上的今天
暂无评论...
随机推荐
余光中:绝色
美丽而善变的巫娘,那月亮翻译是她的特长却把世界译走了样 把太阳的鎔金译成了流银把烈火译成了冰而且带点薄荷的风味 凡尝过的人都说译文是全不可靠但比起原文来呢却更加神秘,更加美 雪是另一位唯美的译者存心把世界译错或者译对,诗人说只因原文本来就...
林夕:赏味期限
那还是你和好友说着想要去很多很多地方的年纪。你踢踢踏踏地在走廊里面一边走一边数着自己到底想去多少个地方,好友跟在你的后面臭着一张脸喊,好高骛远的家伙,离开这里看谁天天陪你。你转身去拉她的手,笑得相当谄媚,说你可以陪我一起去呀。好友摇着手告诉你去去去,先把英文考及格了再说吧。所谓好友到底可以好成...
[摘]Android 系统重启原因分析
前言Android重启,这种影响使用的问题必须解决和找出原因。正文以下是摘抄文章内容,略有删减。重启原因分类上层造成重启system_server被杀watchdog重启重要线程阻塞kernel造成重启空指针非法地址kernel watchdog造成重启,...
郁达夫:北平的四季
对于一个已经化为异物的故人,追怀起来,总要先想到他或她的好处;随后再慢慢的想想,则觉得当时所感到的一切坏处,也会变作很可寻味的一些纪念,在回忆里开花。关于一个曾经住过的旧地,觉得此生再也不会第二次去长住了,身处入了远离的一角,向这方向的云天遥望一下,回想起来的,自然也同样地只是它的好处。中国的大都...
铁凝:幸福就在此刻
去探望一位生病的友人,聊起很多从前的事情,计划很多未来的事情,她忽然发问:对于你来说,幸福的时刻是什么?想了半天,竟然没有一个很适合的答案。那阵子,经常携带这个难题去和人打交道,不管是新朋还是故友,聊到酣畅总是抛出这个问题冷场,当然,收获的答案也是五花八门——有人说,幸福的时刻就是加官晋爵时买房...
Android的软解码和硬解码
在MediaCodec里有接口可以枚举所有解码格式,每种编码可能都有多个解码器。MediaCodec mediaCodec = MediaCodec.createDecoderByType("video/avc");我的应用里面接收的是H264编码数据,所以我选取的是video/avc,我们...