我想将快速滚动功能(例如在Android联系人应用程序或Whatsapp联系人中)添加到RecyclerView吗?
我也将使用列表视图,但是我需要在相同布局的应用程序中使用Cards
!
如果很难快速滚动到Recyclerview,是否也可以使用ViewStub?
我的RecyclerViewAdapter:
public class SongRecyclerViewAdapter extends RecyclerView.Adapter<SongRecyclerViewAdapter.Holder> {
private Song[] sSongs;
public SongRecyclerViewAdapter(Song[] songs) {
sSongs = songs;
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_songview, parent, false);
Holder holder = new Holder(view);
return holder;
}
@Override
public void onBindViewHolder(Holder holder, int position) {
//holder.imvSong.setImageResource(R.drawable.standardartwork);
holder.txvSongTitle.setText(sSongs[position].getTitle());
holder.txvSongInfo.setText(sSongs[position].getArtists());
}
@Override
public int getItemCount() {
return sSongs != null ? sSongs.length : 0;
}
public class Holder extends RecyclerView.ViewHolder {
LinearLayout linearLayout;
ImageView imvSong;
TextView txvSongTitle;
TextView txvSongInfo;
public Holder(View layout) {
super(layout);
linearLayout = (LinearLayout) layout;
imvSong = (ImageView) layout.findViewById(R.id.imvSong);
txvSongTitle = (TextView) layout.findViewById(R.id.adap_txvSongtitle);
txvSongInfo = (TextView) layout.findViewById(R.id.txvSongInfo);
}
}
}
谢谢!
最佳答案
您的代码中的问题将是注释行:
//holder.imvSong.setImageResource(R.drawable.standardartwork);
要解决这个问题,您有2个解决方案:
1)如果您的已知图像数量很少,则可以在初始化时创建一次位图/可绘制对象,然后只需引用这些即可。
2)创建位图缓存,这是一种可解码位图的智能方法,以及可重复使用的位图池和池化机制。这并非微不足道,这也是第三方图书馆为您服务的。我不建议自己实施。