实际上,我在主视图容器中通过片段在单个活动中使用整个应用程序。
当我点击由LoginFragment
替换的标题按钮片段时,一个片段包含一个viewPager,并且在返回时我们维护backstack
,因此包含viewPager的片段将位于顶部但是我们在{{{{}}中获得了当前项目的空白视图1}}。
答案 0 :(得分:2)
这是我的解决方案,我已经搜索了很多答案,所以如果你有更好的答案,请与我分享..
我将ViewPager切换到了活动
活动XML
<RelativeLayout ....
xmlns.
<FrameLayout
android:id="@+id/container"
android:layout_height="match_parent"
android:layout_width="match_parent"
/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
</...viewPager>
活动类
public MainActivity extends Activity .... {
private boolean mShowPager;
private FrameLayout mContainer;
private ViewPager mPager;
//Inflate them
public void showViewPager() {
mPager.setVisibility(View.Visible);
mContainer.setVisibilty(View.Gone);
}
public void showContainer() {
mContainer.setVisibility(View.Visible);
mPager.setVisibilty(View.Gone);
}
public void showViewPager(boolean show) {
mShowPager = show;
}
@override
public void onBackPressed() {
if(mShowPager) {
showViewPager();
}
super.onBackPressed();
片段示例
public void onAttach(Activity activity) {
((MainActivity)activity).showViewPager(true);
((MainActivity)activity).showContainer();
// True表示后退后显示ViewPager //返回表示仍显示Container但按下后退 信息:您决定要显示ViewPager或包含片段的容器,还可以根据需要使用BackStack。
希望它能帮助我。
答案 1 :(得分:0)
我从调试中得到了答案。问题是我在片段内部使用fragmentPager,所以在那里进行适配器初始化,我们必须传递getChildFragmentManager()而不是getFragmentManager()