android网格视图的项目从右到左

我正在与阿拉伯语版本的Android应用程序。

在其中的一个接口,我有gridView。 所以要以正确的顺序显示项目, 我必须从右到左显示GridView中的项目 (以及从顶部到底部的corse项目)。 为此,我尝试在GridView中添加这些属性:

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

不幸的是,项目仍然显示从左到右。

任何想法以正确的方式做到这一点?

Solutions Collecting From Web of "android网格视图的项目从右到左"

你可以通过这个丑陋的解决方法实现这一点:

  1. 在XML中添加这一行到你的GridView中:

    机器人:=的rotationY “180”

  2. 也将相同的行添加到XML中的GridView项目中:

    机器人:=的rotationY “180”

总的来说,它可以让你旋转360°,所以看起来GridView将项目从右到左放置。

在XML中添加这一行到你的GridView中:

 android:layoutDirection="rtl" 

正如Nibha Jain所说的那样。 你也需要添加一个属性“android:layoutAnimation”到GridView xml中,如下所示。

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

还需要用“android:direction”属性定义一个animation文件,这个属性实际上是从右到左或者任何支持的方向渲染你的项目。

anim文件夹中的layout_grid_right_to_left.xml文件

 <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" /> 

@ anim / fade如下

 <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" /> 

它只是我的喜好。 请添加/删除适合您需要的属性。 玩吧。

根据traninho的回答:

  1. 在XML中添加这一行到你的GridView中:

    机器人:=的rotationY “180”

  2. 也将相同的行添加到XML中的GridView项目中:

    机器人:=的rotationY “180”

请执行下列操作:

  • 在你的GridActivity上,删除这个:

      gridView.setOnClickListener(...); 
  • 现在,转到您的gridAdapter并添加onClickListener到gridImage,所以,您的代码应该如下所示:

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

这将通常在您的GridView图像上处理点击。

希望帮助:)

 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"/> 

设备当地语言是英语: 在这里input图片描述

设备本地语言是parsian: 在这里input图片说明

除了上面的答案:

 android:layoutDirection="rtl" 

理想情况下,如果你想让它知道,所以只有rtl在它应该是的语言环境:

 android:layoutDirection="locale" 

您也可以使其遵循包含的布局

 android:layoutDirection="inherit"