我正在使用阿拉伯语版本开发一个Android应用程序。
在其中一个界面中,我有gridView。因此,要以正确的顺序显示项目,我必须从右到左显示GridView中的项目(以及从顶部到底部的corse)。 为此,我尝试在GridView中添加这些属性:
android:gravity="right"
android:layout_gravity="right"
不幸的是,项目仍然从左到右显示。
任何想法以正确的方式做到这一点?
答案 0 :(得分:48)
你可以通过这个丑陋的解决方法来实现这个目标:
将此行添加到XML格式的GridView中:
机器人:=的rotationY “180”
还在XML格式的GridView项目中添加相同的行:
机器人:=的rotationY “180”
总的来说,它可以让你旋转360°,所以它看起来像GridView从右到左放置物品。
答案 1 :(得分:6)
将此行添加到XML格式的GridView中:
android:layoutDirection="rtl"
答案 2 :(得分:2)
根据traninho的回答:
将此行添加到XML格式的GridView中:
机器人:=的rotationY “180”
- 醇>
还在XML格式的GridView项目中添加相同的行:
机器人:=的rotationY “180”
执行以下操作:
在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" />
<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"