Изменение направления навигационного ящика - PullRequest
0 голосов
/ 10 апреля 2019

В моем приложении есть навигационный ящик, в котором я изменил направление открытия справа налево на layoutdirection="rtl", но, похоже, он перепутался со всем содержимым навигационного ящика и всеми такими элементами, как вид, кнопки и ... переключенсправа налево.Я имею в виду, у меня есть кнопка где-то справа, но в симуляторе она появляется слева.Кто-нибудь сталкивался с этой проблемой раньше?Как это исправить?

Я тоже пробовал этот кусок кода, но не сработало

getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); 

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

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;
}
0 голосов
/ 10 апреля 2019
android:layout_gravity="right"
...