到目前为止,我已经有了MainActivity
来交换片段。但我已经实施了FragmentActivity
以使用ViewPager
并在我的抽屉部分中交换Fragments
。
但是当我点击我的抽屉创建ViewPager
的项目时,抽屉就会一起消失。
以下是我如何开始FragmentActivity
:
private Fragment checkFragment(int itemId) { // Checks what item the user has pressed and calls the right Fragment / Activity
Fragment fragment = null;
switch (itemId) {
// HOME (If user clicks on HOME in Drawer)
case R.id.nav_home:
fragment = new Home(); // Set Fragment to be used
break;
// STATS GENERAL (If user clicks on General Stats)
case R.id.nav_stat_general:
startActivity(new Intent(this, GeneralStatistics.class)); // Start the Fragment Activity
fragment = null;
break;
}
return fragment;
}
这是我的Fragment Activity
onCreate
方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.statistics_general);
mStatisticsPagerAdapter = new StatisticsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mStatisticsPagerAdapter);
}
即使我从一个活动转到另一个活动,我怎么能保留抽屉?
答案 0 :(得分:0)
保留导航抽屉。你必须用另一个片段替换viewpager内容。
来自您的代码
startActivity(new Intent(this, GeneralStatistics.class));
此行清楚地表明您正在进行另一项活动(不是替换您的viewpager内容的片段)
我建议你看一下这个Example。
答案 1 :(得分:0)
解决/解决我的问题:
我不再使用ActivityFragment
而只使用Fragment
并将其onCreate
替换为以下内容:
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.statistics_general_vp, container, false);
// No more setContentView
mViewPager = (ViewPager) view.findViewById(R.id.pager);
mStatisticsPagerAdapter = new StatisticsPagerAdapter(getActivity().getSupportFragmentManager());
mViewPager.setAdapter(mStatisticsPagerAdapter);
return view;
}