我想使用ConstraintLayout对阿拉伯语和英语使用相同的布局。 当我使用LinearLayout时,ImageView和TextView水平对齐,并根据语言更改布局方向。但是,当我使用constraintlayout时,图像视图和TextView在阿拉伯语中未从“右到左”对齐。
布局预览屏幕截图
但是使用ConstraintLayout时我没有得到这个
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:background="@color/white"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher_2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="@string/work_name"
app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/imageView" />
</androidx.constraintlayout.widget.ConstraintLayout>
答案 0 :(得分:1)
为TextView从右侧对齐文本
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="@string/work_name"
android:gravity="center|right"
app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/imageView" />
android:gravity =“ center | right”
设置编码方向
1)在onCreate()中找到TextViews id
2)遵循以下代码
textview.setGravity(Gravity.CENTER|Gravity.RIGHT);
OR
textview.setGravity(Gravity.CENTER|Gravity.LEFT);
3)根据您的文字申请。
我建议您在约束布局中使用2个图像视图和2个文本视图,以便显示英文文本,然后隐藏右侧图像和文本,并显示左侧图像和阿拉伯文本的文本,反之亦然
。尝试一下。
答案 1 :(得分:0)
如果你想让整个项目的阿拉伯语布局与英语布局一样,那么添加这行清单:
<application
android:supportsRtl="false"
我建议您为从右到左的每种语言制作一个单独的 XML 文件。 请注意从右到左的语言短代码,如 (-ar, -fa, -ps, -sd, -ur) ,如果您有更多的阿拉伯语到左码,请告诉我们。