如何设置当单击导航视图时从右侧打开导航抽屉



我正试图设置导航抽屉,当点击nav_langage时从右侧打开。。。这是为了将导航抽屉的语言更改为阿拉伯语,我还想将导航抽屉设置为右侧

else if (id==R.id.nav_language)
{
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu menu = navigationView.getMenu();
MenuItem nav_language = menu.findItem(R.id.nav_language);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
//preferences.edit().putString("lang", "bn").commit();
String lang = preferences.getString("lang", "en");
//Log.e("lang", "lang in Main Activity:"+lang);
if (lang.equalsIgnoreCase("en"))
{
setLocale("ar");
preferences.edit().putString("lang", "ar").commit();
nav_language.setTitle("الانجليزية");
navigationView.setNavigationItemSelectedListener(this);

} else if (lang.equalsIgnoreCase("ar")) {
setLocale("en");
preferences.edit().putString("lang", "en").commit();
nav_language.setTitle("Arabic");
navigationView.setNavigationItemSelectedListener(this);

}
private void setLocale(String lang) {
Locale  myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, HomePageActivity.class);
startActivity(refresh);
finish();
}

您必须将其添加到您的xml:中

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.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"
tools:openDrawer="right"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.navigation.NavigationView
android:layout_gravity="right"/>
</androidx.drawerlayout.widget.DrawerLayout>

我的意思是openDrawer="right"用于抽屉布局,android:layout_gravity="right"用于导航_视图。无论如何,不建议使用右侧的菜单,我希望这有帮助。

最新更新