Я использую вид рециркулятора для отображения 15 изображений на моем фрагменте.Изображения находятся в папке для рисования.Я пробовал внешние виды, чтобы сделать это, но это намного медленнее и сильно отстает.Следовательно, я использовал представление переработчика, чтобы решить эту проблему.Фрагмент занимает около 8 секунд, чтобы его открыть, и он очень запаздывает.Есть ли выход или альтернатива?Вот мой фрагмент кода:
public class GifFragment extends Fragment {
private View view;
RecyclerView rvMain;
public GifFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view=inflater.inflate(R.layout.fragment_gif,container,false);
rvMain = view.findViewById(R.id.rvMain);
int sticker[]={R.drawable.kitty1, R.drawable.kitty2, R.drawable.kitty3, R.drawable.kitty4, R.drawable.kitty5
, R.drawable.kitty6, R.drawable.kitty7, R.drawable.kitty8, R.drawable.kitty9, R.drawable.kitty10
, R.drawable.kitty11, R.drawable.kitty12, R.drawable.kitty13, R.drawable.kitty14, R.drawable.kitty15};
MyAdapter adapter = new MyAdapter(sticker);
rvMain.setLayoutManager(new GridLayoutManager(getContext(), 3));
adapter.setHasStableIds(true);
rvMain.setAdapter(adapter);
return view;
}
private class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
int sticker[];
public MyAdapter( int sticker[]) {
this.sticker=sticker;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item, parent, false);
MyViewHolder viewHolder = new MyViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
holder.logo.setImageResource(sticker[position]);
holder.logo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "This is: " , Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return sticker.length;
}
}
private class MyViewHolder extends RecyclerView.ViewHolder{
public ImageView logo;
public TextView name;
public MyViewHolder(View itemView) {
super(itemView);
logo = (ImageView)itemView.findViewById(R.id.ivLogo);
}
}
}