Изменить направление панели действий справа налево - программирование
Подтвердить что ты не робот

Изменить направление панели действий справа налево

Я создаю приложение для Android для конкретного языка справа налево. И я использую ActionBarSherlock (совместимую панель инструментов панели задач Android).
То, что я точно хочу, - это изменить направление панели действий в RTL, даже если пользователь не задает язык Locale по умолчанию RTL.
Если у кого-то есть идея даже для стандартного бара Android, это ценно и может помочь, пожалуйста, поделиться им.
Благодаря

4b9b3361

Ответ 1

От Android API Level 17+ он поддерживает RTL изначально. Чтобы заставить весь ваш макет быть RTL, включая ActionBar, выполните следующие действия.

Отредактируйте свой AndroidManifest.xml и добавьте android:supportsRtl="true" в тэг <application>, а затем добавьте следующую строку в начало вашего метода onCreate() forceRTLIfSupported();, а затем добавьте следующую функцию в свою активность.

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void forceRTLIfSupported()
{
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
        getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
    }
}

Конечно, это полезно только для отладки. Используйте View.LAYOUT_DIRECTION_LOCALE для производственных сборок, чтобы ваш макет был изменен только тогда, когда пользователь выбрал расположение/язык системы, ака locale поддерживает RTL.

Надеюсь, что это поможет.

Ответ 2

Мы должны верить в правильное правило программирования:

Все будет возможно, когда вы будете знать свои инструменты.

Итак, теперь вы можете использовать эту библиотеку, чтобы действительно RTLize ваши панели действий: https://github.com/semsamot/ActionBarRTLizer

И, конечно, он совместим с уровнем API 7 +.

Ответ 3

Бойгер прав. Приложение "Nabz Bazar", которое вы упомянули, не выравнивается справа на каждой версии Android. Как вы можете видеть здесь ABS на самом деле ничего не делает на Android 4.0 или новее, а скриншоты этого приложения находятся на 4.2 android.

Ответ 4

Я уверен, что вы не сможете делать то, что вы просите. Шаблон ActionBar очень специфичен, и поддерживающие его библиотеки будут поддерживать только определенный шаблон (который имеет значок слева вверху, а затем выдает заголовок и кнопки действий справа).

Изменение теста так же просто, как изменение языка и текста в вашем приложении (как вы уже упоминали).

Изменение положения элементов внутри самого ActionBar не будет поддерживаться библиотеками, поддерживающими стандартный шаблон ActionBar, поскольку то, что вы описываете, не поддерживается шаблоном пользовательского интерфейса.

Я думаю, вы должны оставить AB как есть. Нет необходимости переключать порядок, так как в любом случае нет правого-левого положения - и изменение этого будет крайне затруднительным для ваших пользователей.

В нижней строке вы не сможете этого сделать с существующими библиотеками - и вы, вероятно, не должны в любом случае.

Ответ 5

используйте это, это будет make layout из rtl, но это в корневом каталоге вашего xml

    android:layoutDirection="rtl"
    android:textDirection="rtl"