更改导航抽屉方向
Changing navigation drawer direction
我的应用程序中有导航抽屉,我通过 layoutdirection="rtl"
改变了它从右向左打开的方向,但它似乎弄乱了导航抽屉内容中的所有内容以及每个项目,例如视图和按钮以及...从右到左切换。我的意思是我在右边的某个地方有按钮,但在模拟器中它似乎在左边。
以前有人遇到过这个问题吗?我该如何解决?
我也试过这段代码,但是没有成功
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
android:layout_gravity="right"
1) 如果你想使用
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
然后将此代码添加到清单
<application android:supportsRtl="true">
2) 另一种实现方式...
your_layout.xml:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
tools:openDrawer="end">
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_gravity="end" // here you can change direction
/>
</android.support.v4.widget.DrawerLayout>
YourActivity.java:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item != null && item.getItemId() == android.R.id.home) {
if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
mDrawerLayout.closeDrawer(Gravity.RIGHT);
}
else {
mDrawerLayout.openDrawer(Gravity.RIGHT);
}
}
return false;
}
我的应用程序中有导航抽屉,我通过 layoutdirection="rtl"
改变了它从右向左打开的方向,但它似乎弄乱了导航抽屉内容中的所有内容以及每个项目,例如视图和按钮以及...从右到左切换。我的意思是我在右边的某个地方有按钮,但在模拟器中它似乎在左边。
以前有人遇到过这个问题吗?我该如何解决?
我也试过这段代码,但是没有成功
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
android:layout_gravity="right"
1) 如果你想使用
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
然后将此代码添加到清单
<application android:supportsRtl="true">
2) 另一种实现方式...
your_layout.xml:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
tools:openDrawer="end">
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_gravity="end" // here you can change direction
/>
</android.support.v4.widget.DrawerLayout>
YourActivity.java:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item != null && item.getItemId() == android.R.id.home) {
if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
mDrawerLayout.closeDrawer(Gravity.RIGHT);
}
else {
mDrawerLayout.openDrawer(Gravity.RIGHT);
}
}
return false;
}