片段隐藏抽屉菜单

时间:2018-03-06 14:40:50

标签: android android-fragments navigation-drawer

Chapter1Fragment类的onViewCreate方法(从android.app.Fragment扩展)返回一个类的对象,该类是android.opengl.GLSurfaceView的子类

此片段在活动中显示正常。但问题是抽屉导航视图确实隐藏在这个片段后面。请建议如何修理抽屉菜单?

这是onViewCreate的代码

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
Bundle savedInstanceState) {
    int chapterNumber = 1;
    getActivity().setTitle(R.string.txt_chap1);
    mPageFlipView = new PageFlipView(getActivity(), chapterNumber);
    mGestureDetector = new GestureDetector(getActivity(), this);

    mPageFlipView.setOnTouchListener(new View.OnTouchListener(){


        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                mPageFlipView.onFingerUp(motionEvent.getX(), motionEvent.getY());
                return true;
            }

            return mGestureDetector.onTouchEvent(motionEvent);
        }
    });
    return mPageFlipView;
}

还有另一个片段HomeFragment调用以下代码使Chapter1Fragment出现

Chapter1Fragment fragment = new Chapter1Fragment();
FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.frameLayout, fragment);
    fragmentTransaction.commit();

这是传递给MainActivity的onCreate()的setContentView()的xml文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<include
    layout="@layout/app_bar_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"

    app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

这是布局目录中的app_bar_main.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="viento.com.bookapp.MainActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_main" />

</android.support.design.widget.CoordinatorLayout>

这是布局目录

中的content_main.xml
    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
/>

screen shot of the fragment hiding the navigation drawer menu

0 个答案:

没有答案