如何在特定片段上隐藏FAB [英] How to hide FAB on a particular fragment
问题描述
好吧,我只想在特定片段上删除/隐藏FAB,在我的情况下为历史记录"标签.
Well I want to remove/hide FAB only on a particular fragment , HISTORY tab in my case .
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
.... (Overriding methods , I didnt do anything here
});
我使View Pager膨胀的方法
My methods for inflating View Pager
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new HistoryFragment(), "HISTORY");
adapter.addFragment(new TransactionFragment(), "CURRENT");
adapter.addFragment(new FutureFragment(), "FUTURE");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(android.support.v4.app.Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
我应该在哪里以及如何更改代码以在历史记录"标签/片段中隐藏我的FAB,然后在其他标签上再次显示
Where and how should I make changes to my code to Hide my FAB from the HISTORY tab/fragment and show again on other Tabs
推荐答案
我认为它是如此简单:
viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if(position == 0) {
// hide FAB
} else {
// show FAB
}
}
}
您可以做很多清理工作以改善维护,例如为每个页面分配页码,例如:
You can do a lot of cleanup to improve maintenance like assign page numbers to each page like:
private static final int PAGE_HISTORY = 0;
private static final int PAGE_TRANSACTION = 1;
private static final int PAGE_FUTURE = 2;
因此,您说的是if(position == PAGE_HISTORY)
,而不是if(position == 0)
.这样,如果您要更改页面,则无需更改大量代码.
So instead of if(position == 0)
you say if(position == PAGE_HISTORY)
. That way you don't have to change a lot of code if you ever change your pages around.
这篇关于如何在特定片段上隐藏FAB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!