android gridview android-gridview arabic right-to-left

Coloque la vista de la grilla de Android de derecha a izquierda



gridview android-gridview (6)

Como dijo Nibha Jain, tiene razón. También debe agregar una propiedad "android: layoutAnimation" a GridView xml como se muestra a continuación.

<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid" android:layoutAnimation="@anim/layout_grid_right_to_left"

y también necesita definir un archivo de animación con el atributo "android: direction", que realmente muestra sus elementos de derecha a izquierda o cualquier dirección compatible.

El archivo layout_grid_right_to_left.xml dentro de la carpeta anim

<gridLayoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:columnDelay="0.5" android:directionPriority="row" android:direction="right_to_left" android:animation="@anim/fade" />

el @ anim / fade es el siguiente

<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_longAnimTime" />

Es solo mis preferencias. Agregue / elimine atributos que se adapte a sus necesidades. Juega con ello.

Estoy trabajando en una aplicación de Android con versión árabe .

En una de las interfaces, tengo gridView. Para mostrar los elementos en el orden correcto, tengo que mostrar los elementos en el GridView de la derecha a la izquierda (y del corse desde la parte superior a la inferior). Para hacer eso, traté de agregar estos atributos en GridView:

android:gravity="right" android:layout_gravity="right"

Lamentablemente, los elementos todavía se muestran de izquierda a derecha.

Alguna idea de hacerlo de la manera correcta?


Puede lograr esto con esta desagradable solución alternativa:

  1. agregue esta línea a su GridView en XML:

    android: rotationY = "180"

  2. también agregue la misma línea a su elemento GridView en XML:

    android: rotationY = "180"

En total, le da una rotación de 360 ​​°, por lo que parece que GridView coloca los elementos de derecha a izquierda.


Basado en la respuesta de Traninho:

  1. agregue esta línea a su GridView en XML:

    android: rotationY = "180"

  2. también agregue la misma línea a su elemento GridView en XML:

    android: rotationY = "180"

Haz lo siguiente:

  • En su GridActivity, elimine esto:

    gridView.setOnClickListener(...);

  • Ahora, vaya a su gridAdapter y agregue onClickListener a la gridImage para que su código se vea como el siguiente:

    gridImage.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //Do something } });

Esto manejará los clics normalmente en sus imágenes GridView.

Deseo que ayude :)


agregue esta línea a su GridView en XML:

android:layoutDirection="rtl"


Create one new layout-ldrtl folder and make xml file grid view . example... <GridView android:id="@+id/popoulat_category_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scrollingCache="true" android:smoothScrollbar="true" android:numColumns="2" android:scrollbars="none" android:horizontalSpacing="-5dp" android:verticalSpacing="-5dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginStart="5dp" android:layout_marginEnd="5dp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp"/>

el idioma local del dispositivo es el inglés: introduzca la descripción de la imagen aquí

el idioma local del dispositivo es parsian: ingrese la descripción de la imagen aquí


Además de la respuesta anterior:

android:layoutDirection="rtl"

Idealmente, si desea que sea rtl consciente, entonces solo rtl en las configuraciones regionales donde debería estar:

android:layoutDirection="locale"

También puede hacer que siga el diseño que lo contiene

android:layoutDirection="inherit"