Domanda

La mia surfaceview sta bloccando il mio cassetto di navigazione dall'apparire.

La mia attività principale ha un frammento che imposta la sua vista di contenuto come vista sulla superficie:

getActivity().setContentView(surfaceView);
.

La stessa attività principale crea anche un cassetto di navigazione:

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>
.

Qualsiasi altro approccio alternativo per ottenere un cassetto di navigazione o un cassetto di navigazione, un aspetto, pur mantenendo ancora una vista superficiale!

È stato utile?

Soluzione

Quando il frammento chiama questa riga: getActivity().setContentView(surfaceView);, sta sostituendo il layout dell'attività contenente il cassetto con solo la surfaceview.Cioè, la tua attività non ha più un cassetto.Il frammento dovrebbe caricare la surfaceview nel proprio layout in onCreateView().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top