布局 - 开始 - 结束,左 - 右概念

问题描述 投票:1回答:1

我对使用以下属性感到困惑。

> android:layout_marginRight and   android:layout_marginEnd
> android:layout_marginLeft and android:layout_marginStart
> android:layout_toLeftOf and android:layout_toStartOf
> android:layout_toRightOf and android:layout_toEndOf
> android:layout_gravity="right|end"
> android:layout_gravity="left|start"

以下是我提到的一些事实。如果我错了,请纠正我。

  • 要支持Ltr和Rtl布局并支持api级别17之前的版本,建议将上述属性始终成对使用。
  • API级别17中将添加“开始”和“结束”概念 优先考虑api级别> = 17的Ltr设备,“右”和“左”概念优先于api级别<17的Ltr设备
  • 如果我们的应用程序minskdversion> = 17那么我们可以忽略“正确”和 “left”属性并仅使用“start”和“end”属性
  • “开始”和“结束”概念将优先于所有Rtl设备

我还想知道,如果我成对地添加以上属性,在性能/优化方面是否有任何不利影响,如 -

 <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="right|end"
     android:layout_marginRight="@dimen/dp10"
     android:layout_marginEnd="@dimen/dp10"
     android:layout_marginLeft="@dimen/dp10"
     android:layout_marginStart="@dimen/dp10"
     android:layout_toLeftOf="@+id/bar"
     android:layout_toStartOf="@+id/bar"
     />
android android-layout layout android-view android-api-levels
1个回答
1
投票

要在您的应用中支持RTL,您应该:

  • 如果您的应用API级别> = 17,则应使用“start”和“end”而不是“left”和“right”(例如:layout_marginStart)
  • 如果您的应用API级别<17,则应添加“开始”并结束“除”左侧“和”右侧“。换句话说 - 同时使用layout_marginRight和layout_marginEnd换句话说,你的任何视图应如下所示:android:id =“@ + id / textView” android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="20dp" android:text="@string/text_Field" android:textSize="24sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/imageView" /> 注意:android:layout_marginStart =“16dp”

Source

© www.soinside.com 2019 - 2024. All rights reserved.