【发布时间】:2018-12-06 10:16:09
【问题描述】:
在我的 ListView 上,有些行未RTL 对齐。 滚动后重绘线条是正确的。
我的订单项布局:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/clFrontView"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:id="@+id/ivCircle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/circle"
tools:ignore="ContentDescription"
android:layout_marginTop="5dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintLeft_toLeftOf="parent" />
<ImageView
android:id="@+id/ivReminderType"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
tools:ignore="ContentDescription"
app:layout_constraintTop_toTopOf="@id/ivCircle"
app:layout_constraintBottom_toBottomOf="@id/ivCircle"
app:layout_constraintStart_toStartOf="@id/ivCircle"
app:layout_constraintEnd_toEndOf="@id/ivCircle"
app:layout_constraintLeft_toLeftOf="@id/ivCircle"
app:layout_constraintRight_toRightOf="@id/ivCircle" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/civContactImage"
android:layout_width="42dp"
android:layout_height="42dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<ImageView
android:id="@+id/icivCircleSmall"
android:layout_width="15dp"
android:layout_height="15dp"
app:layout_constraintEnd_toEndOf="@id/civContactImage"
app:layout_constraintRight_toRightOf="@id/civContactImage"
app:layout_constraintBottom_toBottomOf="@id/civContactImage"
tools:ignore="ContentDescription"/>
<TextView
android:id="@+id/tvTextLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:text="Line of Text"
android:textSize="18sp"
android:maxLines="2"
app:layout_constraintLeft_toRightOf="@id/ivCircle"
app:layout_constraintStart_toEndOf="@id/ivCircle"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"/>
<TextView
android:id="@+id/tvTextLine2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textSize="16sp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="@id/tvTextLine"
app:layout_constraintLeft_toLeftOf="@id/tvTextLine"
app:layout_constraintTop_toBottomOf="@id/tvTextLine" />
<TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:text="Wed, 01.05.2018 10:10"
android:textColor="#FF909090"
android:textSize="12sp"
android:drawablePadding="5dp"
app:layout_constraintStart_toStartOf="@id/tvTextLine"
app:layout_constraintLeft_toLeftOf="@id/tvTextLine"
app:layout_constraintTop_toBottomOf="@id/tvTextLine2" />
<TextView
android:id="@+id/tvRepeat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:text="Every 2nd Friday"
android:textColor="#FF909090"
android:textSize="12sp"
android:drawablePadding="5dp"
app:layout_constraintStart_toStartOf="@id/tvTextLine"
app:layout_constraintLeft_toLeftOf="@id/tvTextLine"
app:layout_constraintTop_toBottomOf="@id/tvTime" />
</android.support.constraint.ConstraintLayout>
build.gradle 依赖:
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
【问题讨论】:
-
我认为,您可以通过删除所有
app:layout_constraintLeft_toLeftOf' andapp:layout_constraintLeft_toRightOf' 来修复它,并确保存在等效的app:layout_constraintLeft_toStartOf和app:layout_constraintLeft_toEndOf!.. -
@Pzy64:我的布局中已经有 Start_toStartOf 和 End_toEndOf。为什么要添加“Left_toStartOf”?我不知道这应该是什么。如果你想要 RTL,Left 不是,它应该是 Start_toStartOf。还是我错过了什么?
-
好的,我的意思是删除所有
toLeft的toRight,如果布局中断添加等效的toStart或toEnd或其他。基本上,当您编写Left或Right时,它只是保持左或右覆盖RTL Bevavior。如果您希望您的代码完全遵守 RTL 行为,您可能需要删除指定 left 或 right 的每个属性,并替换为 start 或 end,除非您真的想要!!.. 可能存在您希望按钮位于右侧的情况Edittext 即使 RTL 与否,在这种情况下,您可以指定 Right 或 Left。 ..(如果我错了,请纠正我..) -
好的我明白了,但我的问题是 ListView 中只有一些行不是从右到左的。滚动后是从右到左。所以这不是一个普遍的问题。无论如何,如果我删除所有 toLeft 和 toRight,我也会遇到同样的问题。 :-(
-
您好,您解决了这个问题吗?
标签: android android-layout right-to-left android-constraintlayout