У меня есть фрагмент, который содержит:
- RecyclerView.
- NavigationView с прослушивателем ItemSelected.
- Пользовательское диалоговое окно с видом переработчика в виде макета.
Теперь у меня вопрос, будет ли плохо, если я постоянно создаю новый RecyclerView Адаптер для RecyclerView при каждом нажатии на элемент?
Это мой код внутри моего фрагмента:
mNavigationView1.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.ic_add:
final Dialog dialog;
dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.all_playlists_dialog);
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
RecyclerView recyclerView = dialog.findViewById(R.id.recyclerViewDialog);
Main.playLists = Main.songs.playList;
PlayListAdapter playListAdapter = new PlayListAdapter(getActivity(),Main.playLists);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(playListAdapter);
recyclerView.addOnItemTouchListener(new OnItemClickListeners(getActivity(), recyclerView, new OnItemClickListeners.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
try {
Main.songs.addToPlayList(getActivity(), Main.musicList.get(currentIndex).getId(), Main.playLists.get(position).getID());
Toast.makeText(getActivity(), "Song added!", Toast.LENGTH_SHORT).show();
Log.i(TAG, "SONG ID: " + Main.musicList.get(currentIndex).getId() + "PLAYLIST ID: " + Main.playLists.get(position));
} catch (Exception e) {
e.printStackTrace();
}
}
Вызывает ли это каждый раз, когда нажимается кнопка плохо , есть ли другой способ отобразить обзор переработчика внутри пользовательского диалога или это правильный способ сделать это?
PlayListAdapter playListAdapter = new PlayListAdapter(getActivity(),Main.playLists);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(playListAdapter);
Иногда я получаю сообщение об ошибке в logcat, которое говорит RecyclerView Skipping Layout
, но не уверен, что это причина?