Android: SuperseView está bloqueando el cajón de navegación
-
20-12-2019 - |
Pregunta
MI SUPEETWIEVIE ESTÁ BLOQUEO MI CAJA DE NAVEGACIÓN DESDE APERANTE.
Mi actividad principal tiene un fragmento que establece su vista de contenido como la vista de superficie:
getActivity().setContentView(surfaceView);
Esa misma actividad principal también crea un cajón de navegación:
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>
¡Cualquier otro enfoque alternativo para lograr un cajón de navegación o un cajón de navegación, al igual que mantener una vista de la superficie es bienvenida!
Solución
Cuando su fragmento llama a esta línea: getActivity().setContentView(surfaceView);
, está reemplazando el diseño de la actividad que contiene el desplazamiento del cajón con solo la vista de superficie.Es decir, su actividad ya no tiene un cajón.Su fragmento debe estar cargando la vista de superficie en su propio diseño en onCreateView()
.