Frage

Meine Oberflächenansicht verhindert, dass meine Navigationsleiste angezeigt wird.

Meine Hauptaktivität hat ein Fragment, das seine Inhaltsansicht als Oberflächenansicht festlegt:

getActivity().setContentView(surfaceView);

Dieselbe Hauptaktivität erstellt auch eine Navigationsleiste:

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>

Alle anderen alternativen Ansätze, um eine Navigationsschublade oder eine Navigationsschublade zu erreichen, die gleich aussieht und gleichzeitig eine Oberflächenansicht beibehält, sind willkommen!

War es hilfreich?

Lösung

Wenn Ihr Fragment diese Zeile aufruft: getActivity().setContentView(surfaceView);, wird das Layout der Aktivität, das das DrawerLayout enthält, nur durch das SurfaceView ersetzt.Das heißt, Ihre Aktivität verfügt nicht mehr über ein DrawerLayout.Ihr Fragment sollte das SurfaceView in sein eigenes Layout laden onCreateView().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top