Я пытаюсь установить DrawerLayout вправо, но я получаю эту ошибку:
java.lang.IllegalStateException: Child drawer has absolute gravity RIGHT but this
DrawerLayout already has a drawer view along that edge
Код деятельности:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_categories) {
//drawerLayout.openDrawer(GravityCompat.END);
if (drawerLayout.isDrawerOpen(Gravity.RIGHT))
drawerLayout.closeDrawer(Gravity.RIGHT);
else
drawerLayout.openDrawer(Gravity.RIGHT);
return true;
}
return super.onOptionsItemSelected(item);
}
расположение
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/lightGrey"
android:id="@+id/drawer_layout"
tools:openDrawer="end"
tools:context=".MainActivity">
....
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/navigation_view"
android:layout_gravity="end"
app:menu="@menu/categories"/>
Я попробовал несколько решений из этого вопроса , но ни одно из них не решило проблему. Я пытался использовать End вместо Right и GravityCompat вместо Gravity, но всегда получал эту ошибку.