una tutorial studio sesiones proyectos proyecto paso hechas hacer fuente descargar datos con como codigo aplicaciones aplicacion android android-actionbar toolbar right-to-left direction

tutorial - Android: Cambie las instrucciones de diseño de la aplicación mediante programación



sesiones en android studio (4)

¿Cómo puedo cambiar la dirección completa del diseño de la aplicación a RTL? Estoy escribiendo una aplicación en la que el usuario debe seleccionar su idioma en el primer lanzamiento y el diseño debe cambiar en función de la selección del usuario a RTL o sigue siendo LTR. Solía ​​agregar android:supportsRtl="true" a AndroidManifest y android:layoutDirection="rtl" para cada diseño, pero este enfoque tiene algunos problemas, como a continuación:

Un problema es que cuando cambio la dirección a RTL, el ActionBar inicio de la ActionBar o el botón de navegación (cuando está habilitado como inicio) permanece LRT y solo se desplaza hacia la derecha.

También intenté cambiar de dirección programáticamente y el resultado fue el mismo:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ getWindows().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); }

¿Hay alguna forma de obligar a todas las actividades a convertirse en RTL a la vez o debemos establecer la dirección en cada actividad por separado?


Cambiar todo el diseño.

LinearLayout linrtl=(LinearLayout)findViewById(R.id.linrtl); linrtl.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);


El botón Atrás permanece en modo LTR, porque solo tiene un recurso, que es una flecha que apunta a la izquierda. Debe especificar una nueva carpeta de recursos, por ejemplo, drawable-ldrtl-hdpi y colocar el mismo icono que apunta directamente a esta carpeta.


Puede usar este fragmento de código mientras minSdk> = 17 de su aplicación.

fa para Farsi , puedes usar otro lenguaje rtl.

Configuration configuration = getResources().getConfiguration(); configuration.setLayoutDirection(new Locale("fa")); getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());


También tengo este problema, me parece que si el ancho de su vista establece MATCH_PARENT , debe establecer la gravedad de la vista con Gravity.LEFT en el modelo LTR y la gravedad de la vista con Gravity.RIGHT en el modelo RTL.