В моем приложении есть навигационный ящик, который я изменил направление, чтобы открыть справа налево с помощью layoutdirection = "rtl"
, но, похоже, он испортил все содержимое навигационного ящика и каждый элемент, такой как вид и кнопки, и... переключился справа налево. Я имею в виду, что у меня есть кнопка где-то справа, но в симуляторе она кажется левой.
Кто-нибудь сталкивался с этой проблемой раньше? Как это исправить?
Я также пробовал этот фрагмент кода, но не сработал
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
Вы хотите, чтобы меню навигации не действовало на RTL Switch?
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;
}
вы хотите перевернуть все приложение по горизонтали, чтобы поддерживать страны, которые читают и пишут справа налево, или просто хотите, чтобы ящик открывался справа, потому что вы просто предпочитаете именно так?