android网格视图从右到左放置项目

时间:2013-07-24 09:37:42

标签: android gridview android-gridview arabic right-to-left

我正在使用阿拉伯语版本开发一个Android应用程序。

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

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

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

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

6 个答案:

答案 0 :(得分:48)

你可以通过这个丑陋的解决方法来实现这个目标:

  1. 将此行添加到XML格式的GridView中:

    机器人:=的rotationY “180”

  2. 还在XML格式的GridView项目中添加相同的行:

    机器人:=的rotationY “180”

  3. 总的来说,它可以让你旋转360°,所以它看起来像GridView从右到左放置物品。

答案 1 :(得分:6)

将此行添加到XML格式的GridView中:

android:layoutDirection="rtl"

答案 2 :(得分:2)

根据traninho的回答:

  
      
  1. 将此行添加到XML格式的GridView中:

         

    机器人:=的rotationY “180”

  2.   
  3. 还在XML格式的GridView项目中添加相同的行:

         

    机器人:=的rotationY “180”

  4.   

执行以下操作:

  • 在GridActivity上,删除它:

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

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

这将处理GridView图像上的正常点击。

希望有所帮助:)

答案 3 :(得分:1)

正如Nibha Jain所说,它的权利。您还需要在GridView xml中添加属性“android:layoutAnimation”,如下所示。

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

并且您还需要定义一个带有“android:direction”属性的动画文件,该属性实际上是从右向左或任何支持的方向呈现您的项目。

动画文件夹中的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" />

这只是我的偏好。请添加/删除符合您需求的属性。玩它。

答案 4 :(得分:0)

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

设备本地语言为英语: enter image description here

设备本地语言是parsian: enter image description here

答案 5 :(得分:0)

除上述答案外:

android:layoutDirection="rtl"

理想情况下,如果你想让它知道rtl,那么在语言环境中只应该是rtl:

android:layoutDirection="locale"

您还可以按照包含布局

进行操作
android:layoutDirection="inherit"