У меня есть навигационный вид снизу с 3 вариантами и фрагментами.
когда я перехожу к фрагменту, у которого есть tabLayout с представлением переработчика внутри, первый раз список загружается правильно, однако после изменения фрагмента и возврата к списку список не отображается.
код:
Фрагмент RecyclerView.
public class CadastroContaPatrimonialFragment extends Fragment {
@BindView(R.id.recyclerView_conta_patrimonial)
public RecyclerView recyclerViewContaPatrimonial;
private CadastroContaPatrimonialAdapter adapter;
private List<ContaPatrimonial> listaContas;
public static CadastroContaPatrimonialFragment newInstance() {
CadastroContaPatrimonialFragment fragment = new CadastroContaPatrimonialFragment();
return fragment;
}
public CadastroContaPatrimonialFragment() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_cadastro_conta_patrimonial, container, false);
ButterKnife.bind(this, view);
if (this.listaContas == null) {
configuraRecycler();
}
return view;
}
private void configuraRecycler() {
MainActivity.loading(true);
LinearLayoutManager manager = new LinearLayoutManager(getContext());
recyclerViewContaPatrimonial.setLayoutManager(manager);
ContaPatrimonialDAO contaPatrimonialDAO = PatrimonioDatabase.getInstance(getContext()).criaContaPatrimonialDAO();
this.listaContas = contaPatrimonialDAO.getAll();
adapter = new CadastroContaPatrimonialAdapter(this.listaContas);
recyclerViewContaPatrimonial.setAdapter(adapter);
recyclerViewContaPatrimonial.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
MainActivity.loading(false);
}
}
Адаптер:
public class CadastroContaPatrimonialAdapter extends RecyclerView.Adapter<CadastroContaPatrimonialAdapter.ContaPatrimonialViewHolder> {
List<ContaPatrimonial> contas;
public CadastroContaPatrimonialAdapter(List<ContaPatrimonial> contas) {
this.contas = contas;
}
@NonNull
@Override
public ContaPatrimonialViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ContaPatrimonialViewHolder(LayoutInflater.from(parent.getContext())
.inflate(R.layout.conta_patrimonial_item_recycler, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ContaPatrimonialViewHolder holder, int position) {
holder.txtContaDescricao.setText(contas.get(position).getDescricao());
}
@Override
public int getItemCount() {
return contas != null ? contas.size() : 0;
}
/* VIEW HOLDER */
public class ContaPatrimonialViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.item_conta_patr_descricao)
public TextView txtContaDescricao;
public ContaPatrimonialViewHolder(@NonNull View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
Переключение фрагментов:
private void trocaFragment(Fragment fragment, boolean backStack) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction tx = fm.beginTransaction();
tx.replace(R.id.main_frame, fragment);
if (backStack) {
tx.addToBackStack(null);
}
tx.commit();
}