Helly伙计们。 我正在学习xamarin,并试图为Android制作一个基本的食物应用程序。这个应用程序是在RTL方向。现在我的主要内容中有一个Listview,其中包含自定义布局列表。这是一个自定义布局。我是Xamarin Designer窗口中的RTL。
这是布局axaml代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="rtl"
android:textDirection="rtl">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/linearLayout2">
<ImageView
android:src="@drawable/rating4"
android:id="@+id/imgRating"
android:layout_width="70dp"
android:layout_height="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp" />
<ImageView
android:src="@drawable/defaultthumbnail"
android:id="@+id/imgThumbnail"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp" />
<TextView
android:text="10,000 تومان"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/foodPrice"
android:layout_marginLeft="5dp"
android:textDirection="rtl" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginRight="20dp">
<TextView
android:text="نام غذا"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtFoodName"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:text="توضیحات غذا"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:id="@+id/txtFoodDesc" />
<TextView
android:text="تاریخ"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/txtDate"
android:textSize="8sp"
android:textAllCaps="false" />
<TextView
android:text="آشپز"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtCook"
android:textSize="8sp"
android:textAllCaps="false" />
</LinearLayout>
这是我的主要布局,这个listview就在其中。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mainContentLayout"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/app_bar_main"
android:layoutDirection="rtl"
android:textDirection="rtl">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mainContentListView"
android:layoutDirection="rtl"
android:textDirection="rtl" />
</LinearLayout>
但是当我运行这个时,这就是我得到的
因为你可以在里面的那两个线性布局遵循RTL规则但是是倒置的。
答案 0 :(得分:1)
我有同样的问题,我通过在应用程序的清单中添加以下内容来修复它:
<manifest>
<application>
android:supportsRtl="true"
</application>
</manifest>
默认模拟器和预览与“RTL”语言不兼容。尝试在真正的Android设备上测试或尝试xamarin live player。
当android界面语言为英语时,也有一些android设备强制“ltr”,尝试将android语言改为“RTL”语言。
答案 1 :(得分:0)
关于repositories {
google()
jcenter()
// Add your other repositories here
}
,您可以参考this,它的默认值为false。
从android:supportsRtl="true"
开始,它在VS的设计中显示为:
但它在AS的设计中显示为:
与您运行的结果相同。
所以,VS的设计出了问题。
如果我没有误读你的问题,你想得到的是:
因此,您需要将layout axaml code
更改为以下内容:
layout axaml code