如何使用BottomNavigationView隐藏TabLayout

问题描述 投票:0回答:1

我有一个带有3个标签和一个BottonNavigation的TabLayout,我需要在压迫患者并进行配置时,tablayout消失,我不知道我需要什么代码行?我还使用ViewPager,一切正常,我唯一需要的是TabLayout在患者中消失。在患者片段中,我将使用recycleView和CardView,我想显示患者的照片及其数据project imagen

MainActivity.java

public class MainActivity extends AppCompatActivity {
BottomNavigationView mbottomNavigation;
private ViewPager mviewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //bottomNavigation
    mbottomNavigation = (BottomNavigationView) findViewById(R.id.bottom_navigation);
    mbottomNavigation.setOnNavigationItemSelectedListener(navigationItemSelectedListener);
    //aqui se especifica donde es que se quiere que inicie el bottom
    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new AgendaFragment()).commit();
    //ViewPager
    mviewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(mviewPager);
    final BottomNavigationView navigation=(BottomNavigationView)findViewById(R.id.bottom_navigation);
    navigation.setOnNavigationItemSelectedListener(navigationItemSelectedListener);
    mviewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            switch (position){
                case 0:
                    navigation.setSelectedItemId(R.id.nav_agenda);
                    break;
                case 1:
                    navigation.setSelectedItemId(R.id.nav_pacientes);
                    break;
                case 2:
                    navigation.setSelectedItemId(R.id.nav_configuracion);
                    break;
            }

        }
        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
}

private OnNavigationItemSelectedListener navigationItemSelectedListener = new OnNavigationItemSelectedListener() {
  @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case R.id.nav_agenda:
                mviewPager.setCurrentItem(0);
                return true;
            case R.id.nav_pacientes:
                mviewPager.setCurrentItem(1);
                return true;
            case R.id.nav_configuracion:
                mviewPager.setCurrentItem(2);
                return true;
        }
        return false;
    }
};
private void setupViewPager(ViewPager mviewPager) {
   BottomNavPagerAdapter adapter=new BottomNavPagerAdapter(getSupportFragmentManager());
   adapter.addFragment(new AgendaFragment());
   adapter.addFragment(new PacientesFragment());
   adapter.addFragment(new ConfiguracionFragment());
   mviewPager.setAdapter(adapter);
}

}

PatientsFragment.java

public class AgendaFragment<toolbar> extends Fragment {

private TabLayout tabLayout;
private ViewPager firstViewPager;


public AgendaFragment() {
    // Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View rootView=inflater.inflate(R.layout.fragment_agenda,container,false);
    firstViewPager=(ViewPager)rootView.findViewById(R.id.viewpager_content);
    tabLayout=(TabLayout)rootView.findViewById(R.id.tablayout);
    tabLayout.setupWithViewPager(firstViewPager);
    setupViewPager(firstViewPager);
    return rootView;
}


private void setupViewPager(ViewPager viewPager) {
    TabViewPagerAdapter adapter = new TabViewPagerAdapter(getChildFragmentManager());
    adapter.addFragment(new Tab1Fragment(), "Today");
    adapter.addFragment(new Tab1Fragment(), "Tomorrow");
    adapter.addFragment(new Tab1Fragment(), "Other Date");
    viewPager.setAdapter(adapter);
}

}

java android android-viewpager android-tablayout bottomnavigationview
1个回答
0
投票

您可以仅使用BottomNavigation和FrameLayout保留活动布局,以显示每个导航项的内容。在议程片段布局中添加带有工具栏和TabBar的AppBar。

© www.soinside.com 2019 - 2024. All rights reserved.