estoy realizando una app la cual tiene un button navigation con tres fragments y dentro de uno de estos fragments hay un tablayout con otros tres fragments, cuando ingreso a la app y entro al fragment del button navigation que contiene el tablayout todo funciona correctamente pero si luego me dirijo a otro fragment del button navigation y despues regreso al fragment donde esta el tablayout el tablayout funciona mal ya que no me muestra los fragments que lo componen.
alguien sabe como puedo corregir esto
gracias
button navigation
public class menu_principal extends AppCompatActivity { BottomNavigationView BottomNavigation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu_principal); BottomNavigation = findViewById(R.id.bottomnavigation); BottomNavigation.setOnNavigationItemSelectedListener(navListener); getSupportFragmentManager().beginTransaction().replace( R.id.fragment, new home_Fragment()).commit(); } private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { Fragment selectedFragment = null; switch (item.getItemId()) { case R.id.home: selectedFragment = new home_Fragment(); break; case R.id.agregar: selectedFragment = new agregar_Fragment(); break; case R.id.perfil: selectedFragment = new perfil_Fragment(); break; } getSupportFragmentManager().beginTransaction().replace( R.id.fragment, selectedFragment).commit(); return true; } }; }
adapter del tablayout
public class tablayout extends FragmentPagerAdapter { int numoftabs; public tablayout(@NonNull FragmentManager fm, int behavior) { super(fm, behavior); this.numoftabs = behavior; } @NonNull @Override public Fragment getItem(int position) { switch (position){ case 0: return new misgrupos_Fragment(); case 1: return new grupos_Fragment(); case 2: return new pagos_Fragment(); default: return null; } } @Override public int getCount() { return numoftabs; } }
tablayout
public class perfil_Fragment extends Fragment { TabLayout tablayout; ViewPager viewpage; tablayout pagerAdapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View vista = inflater.inflate(R.layout.fragment_perfil_, container, false); tablayout = vista.findViewById(R.id.tablayout); viewpage = vista.findViewById(R.id.viewpage); pagerAdapter = new tablayout(getActivity().getSupportFragmentManager(),tablayout.getTabCount()); viewpage.setAdapter(pagerAdapter); tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewpage.setCurrentItem(tab.getPosition()); if (tab.getPosition()==0){ pagerAdapter.notifyDataSetChanged(); }if (tab.getPosition()==1){ pagerAdapter.notifyDataSetChanged(); }if (tab.getPosition()==2){ pagerAdapter.notifyDataSetChanged(); } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); viewpage.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout)); return vista; }
https://stackoverflow.com/questions/66927339/error-al-combinar-button-navigation-con-tablayout April 03, 2021 at 11:02AM
没有评论:
发表评论