Question

Ma vue de surface bloque l'apparition de mon tiroir de navigation.

Mon activité principale comporte un fragment qui définit sa vue de contenu comme vue de surface :

getActivity().setContentView(surfaceView);

cette même activité principale crée également un tiroir de navigation :

Java:

    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);

    actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
            R.drawable.ic_navigation_drawer, R.string.drawer_open,
            R.string.drawer_close) {

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);   
        }

        @Override
        public void onDrawerSlide(View drawerView, float slideOffset){
            drawerLayout.bringChildToFront(drawerView);
            drawerLayout.requestLayout();
        }
    };

    drawerLayout.setDrawerListener(actionBarDrawerToggle);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

XML :

    <android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/drawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:background="#00000000"
        android:id="@+id/mainContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>

    <ListView
        android:background="#00000000"
        android:id="@+id/drawerList"
        android:layout_width="320dp"
        android:layout_height="match_parent"
        android:layout_gravity="left">
    </ListView>

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

toute autre approche alternative pour obtenir un tiroir de navigation ou un tiroir de navigation semblable tout en conservant une vue de surface est la bienvenue !

Était-ce utile?

La solution

Lorsque votre Fragment appelle cette ligne : getActivity().setContentView(surfaceView);, il remplace la mise en page de l'activité contenant le DrawerLayout par uniquement le SurfaceView.Autrement dit, votre activité n’a plus de DrawerLayout.Votre fragment devrait charger le SurfaceView dans sa propre mise en page dans onCreateView().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top