我有一个tablayout,viewpager有4个片段。 我在MainActivity中添加了底栏,因此显示了所有片段。 我只想在第一个片段中使用底栏。 如何隐藏其他3个片段的底栏?
这是MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//setHasOptionsMenu(true);
bottombar = BottomBar.attach(MainActivity.this,savedInstanceState);
bottombar.setItemsFromMenu(R.menu.bottom_bar_menu, new OnMenuTabSelectedListener() {
@Override
public void onMenuItemSelected(int itemId) {
switch (itemId) {
case R.id.about_us:
About_Us about_us = new About_Us();
Intent intent = new Intent(MainActivity.this,About_Us.class);
startActivity(intent);
break;
case R.id.contact_us:
SquareFragment squareFragment = new SquareFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.frame,squareFragment).commit();
//squareFragment.updateColor(Color.parseColor(colors[1]));
break;
//Toast.makeText(MainActivity.this,"selected contact_us",Toast.LENGTH_SHORT).show();
case R.id.donate_us:
donate_us_Fragment donate_us_fragment = new donate_us_Fragment();
getSupportFragmentManager().beginTransaction().replace(R.id.frame,donate_us_fragment).commit();
//Toast.makeText(MainActivity.this,"selected donate_us",Toast.LENGTH_SHORT).show();
break;
}
}
});
bottombar.setActiveTabColor("#C2185B");
//Initializing the tablayout
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
//Adding the tabs using addTab() method
tabLayout.addTab(tabLayout.newTab().setText("Home").setIcon(R.drawable.home_selector));
tabLayout.addTab(tabLayout.newTab().setText("News").setIcon(R.drawable.news_selector));
tabLayout.addTab(tabLayout.newTab().setText("Videos").setIcon(R.drawable.video_selector));
tabLayout.addTab(tabLayout.newTab().setText("PodCasts").setIcon(R.drawable.podcast_selector));
tabLayout.addTab(tabLayout.newTab().setText("More").setIcon(R.drawable.more_selector));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
//tabLayout.setupWithViewPager(viewPager);
//Initializing viewPager
viewPager = (ViewPager) findViewById(R.id.pager);
//Creating our pager adapter
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
//Adding adapter to pager
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
super.onTabSelected(tab);
}
}
这是ViewPagerAdapter:
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
//integer to count number of tabs
int tabCount;
BottomBar bottombar;
//Constructor to the class
public ViewPagerAdapter(FragmentManager fm, int tabCount) {
super(fm);
//Initializing tab count
this.tabCount = tabCount;
}
//Overriding method getItem
@Override
public Fragment getItem(int position) {
//Returning the current tabs
switch (position) {
case 0:
return new Home_Fragment();
case 1:
News_Fragment news_fragment = new News_Fragment();
bottombar.hide();
return news_fragment;
case 2:
Video_Fragment video_fragment = new Video_Fragment();
return video_fragment;
case 3:
return new PodCasts_Fragment();
case 4:
return new More_Fragment();
}
return null;
}
//Overriden method getCount to get the number of tabs
@Override
public int getCount() {
return tabCount;
}
见下图:
答案 0 :(得分:0)
试试这个:
public void onTabSelected(TabLayout.Tab tab) {
if(tab.getPosition == 0 )
bottomBar.hide();
super.onTabSelected(tab);
}
然后删除
bottomBar.hide();
来自片段中的getItem()
。
答案 1 :(得分:0)
这是正确的代码
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if(tab.getPosition() == 0){
bottombar.show();
}else
if(tab.getPosition() == 1){
bottombar.hide();
}else
if(tab.getPosition() == 2){
bottombar.hide();
}else
if(tab.getPosition() == 3){
bottombar.hide();
}
super.onTabSelected(tab);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
super.onTabUnselected(tab);
//tab.getIcon().setAlpha(127);
}
});
}
}