Mon menu s'ouvrait de gauche à droite, mais je veux qu'il soit ouvert de droite à gauche. J'ai arrangé le code pour être ouvert de droite à gauche, mais maintenant le code ne fonctionne pas, j'obtiens l'erreur suivante.
<include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layoutDirection="rtl" android:layout_width="wrap_content" android:layout_height="match_parent" app:itemTextColor="@color/white" app:itemTextAppearance="@style/NavDrawerTextStyle" android:layout_gravity="right" android:theme="@style/NavigationView" android:background="@color/NavItem" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main2" app:menu="@menu/activity_main_drawer"/> </androidx.drawerlayout.widget.DrawerLayout>
J'obtiens une erreur sur cette ligne: retournez NavigationUI.navigateUp (navController, mAppBarConfiguration)
CLASSE MAÄ ° N
public class MainActivity extends AppCompatActivity { private AppBarConfiguration mAppBarConfiguration; NavigationView navigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); DrawerLayout drawer = findViewById(R.id.drawer_layout); NavigationView navigationView = findViewById(R.id.nav_view); mAppBarConfiguration = new AppBarConfiguration.Builder( R.id.nav_home, R.id.nav_sss, R.id.nav_gelisim, R.id.nav_destek,R.id.nav_hakkımızda,R.id.nav_instagram) .setDrawerLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); NavigationUI.setupWithNavController(navigationView, navController); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onSupportNavigateUp() { NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); return NavigationUI.navigateUp(navController, mAppBarConfiguration) || super.onSupportNavigateUp(); } }
XML
java.lang.IllegalArgumentException: No drawer view found with gravity LEFT
3 Réponses :
Vous pourriez trouver votre réponse ici dans ce post précédent:
Android DrawerLayout - Aucune vue de tiroir trouvée avec la gravité
Vous devez gérer la navigation
cliquez sur la Toolbar
d' Toolbar
comme ci-dessous:
drawer.closeDrawer(GravityCompat.END)
N'oubliez pas non plus de fermer le tiroir chaque fois que nécessaire, comme ci-dessous:
ViewCompat.setLayoutDirection(toolbar, ViewCompat.LAYOUT_DIRECTION_RTL); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (drawer.isDrawerOpen(GravityCompat.END)) drawer.closeDrawer(GravityCompat.END); else drawer.openDrawer(GravityCompat.END); } });
Vous devez définir la direction de la disposition dans la disposition de votre tiroir racine
android:layoutDirection="rtl"