如何让 ConstraintLayout 为 RTL 正常工作?
How to make ConstraintLayout work properly for RTL?
有人知道为什么当切换到 rtl 时,ConstraintLayout 将所有元素居中吗?
android:supportsRtl="true"
清单中已设置。
BookShelfActivity.java
仅包含标准 onCreate 覆盖:
public class BookShelfActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_shelf);
}
}
这里是 activity xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
android:id="@+id/activity_book_shelf"
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"
tools:context="com.hekayh.ereader.BookShelfActivity"
android:layout_gravity="start"
>
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView5"
/>
<TextView
android:text="AnotherTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:id="@+id/textView6"
app:layout_constraintEnd_toEndOf="@id/textView5"
tools:layout_editor_absoluteX="277dp"
app:layout_constraintTop_toTopOf="@+id/activity_book_shelf"
android:layout_marginTop="42dp"/>
<Button
android:text="Button"
android:layout_width="91dp"
android:layout_height="51dp"
android:id="@+id/button2"
app:layout_constraintStart_toStartOf="@+id/activity_book_shelf"
android:layout_marginStart="100dp"
app:layout_constraintTop_toBottomOf="@+id/textView6"
android:layout_marginTop="24dp"
/>
</android.support.constraint.ConstraintLayout>
这是我之前报告的一个错误,它在 alpha 6 中得到解决
https://code.google.com/p/android/issues/detail?id=218979
但是关于 rtl 还有另一个错误我需要通过评论来支持它
这里
https://code.google.com/p/android/issues/detail?id=220103
更新:
开发人员提到第二个 RTL 错误已解决:
https://code.google.com/p/android/issues/detail?id=222556
有人知道为什么当切换到 rtl 时,ConstraintLayout 将所有元素居中吗?
android:supportsRtl="true"
清单中已设置。
BookShelfActivity.java
仅包含标准 onCreate 覆盖:
public class BookShelfActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_shelf);
}
}
这里是 activity xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
android:id="@+id/activity_book_shelf"
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"
tools:context="com.hekayh.ereader.BookShelfActivity"
android:layout_gravity="start"
>
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView5"
/>
<TextView
android:text="AnotherTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:id="@+id/textView6"
app:layout_constraintEnd_toEndOf="@id/textView5"
tools:layout_editor_absoluteX="277dp"
app:layout_constraintTop_toTopOf="@+id/activity_book_shelf"
android:layout_marginTop="42dp"/>
<Button
android:text="Button"
android:layout_width="91dp"
android:layout_height="51dp"
android:id="@+id/button2"
app:layout_constraintStart_toStartOf="@+id/activity_book_shelf"
android:layout_marginStart="100dp"
app:layout_constraintTop_toBottomOf="@+id/textView6"
android:layout_marginTop="24dp"
/>
</android.support.constraint.ConstraintLayout>
这是我之前报告的一个错误,它在 alpha 6 中得到解决 https://code.google.com/p/android/issues/detail?id=218979
但是关于 rtl 还有另一个错误我需要通过评论来支持它 这里 https://code.google.com/p/android/issues/detail?id=220103
更新: 开发人员提到第二个 RTL 错误已解决: https://code.google.com/p/android/issues/detail?id=222556