android:drawableRight 对比 android:drawableEnd
android:drawableRight vs android:drawableEnd
如果我在按钮上使用 android:drawableRight="@drawable/my_image"
:
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button"
android:drawableRight="@drawable/my_image"
android:drawablePadding="4dp"/>
然后编辑器中的 warning/suggestion 告诉我:
Consider replacing android:drawableRight
with
android:drawableEnd="@drawable/my_image"
to better support
right-to-left layouts
这是什么意思?你不能再使用 android:drawableRight
了吗?
某些国家/地区的语言是从右到左阅读的。如果您在编写布局元素时没有考虑到这一点,您的应用程序在他们的设备中可能看起来不正确。本质上,在布局元素中将 left
替换为 start
并将 right
替换为 end
。这适用于上述 XML 属性的 XML 属性 和 values。如果您进入开发者选项并点击强制RTL布局,您可以在从右到左的条件下查看结果并尝试您的布局。
这是我最近使用的布局示例。请特别注意 End 在 XML 属性 和 value[=26= 中的使用] XML 属性。
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end">
<TextView
android:id="@+id/bid_price"
style="@style/BidPriceTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="10dp"
tools:text="1000.00" />
<TextView
android:id="@+id/change"
android:background="@drawable/percent_change_pill"
style="@style/PercentChangeTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="3dp"
android:paddingEnd="3dp"
tools:text="100%" />
</LinearLayout>
除了大牛的回答drawableEnd和drawableStart可以用于API_14+。所以如果你使用minSdkVersion < 14,除了[=12]你还必须使用drawableRight和drawableLeft =]drawableEnd 和 drawableStart.
如果我在按钮上使用 android:drawableRight="@drawable/my_image"
:
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button"
android:drawableRight="@drawable/my_image"
android:drawablePadding="4dp"/>
然后编辑器中的 warning/suggestion 告诉我:
Consider replacing
android:drawableRight
withandroid:drawableEnd="@drawable/my_image"
to better support right-to-left layouts
这是什么意思?你不能再使用 android:drawableRight
了吗?
某些国家/地区的语言是从右到左阅读的。如果您在编写布局元素时没有考虑到这一点,您的应用程序在他们的设备中可能看起来不正确。本质上,在布局元素中将 left
替换为 start
并将 right
替换为 end
。这适用于上述 XML 属性的 XML 属性 和 values。如果您进入开发者选项并点击强制RTL布局,您可以在从右到左的条件下查看结果并尝试您的布局。
这是我最近使用的布局示例。请特别注意 End 在 XML 属性 和 value[=26= 中的使用] XML 属性。
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end">
<TextView
android:id="@+id/bid_price"
style="@style/BidPriceTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="10dp"
tools:text="1000.00" />
<TextView
android:id="@+id/change"
android:background="@drawable/percent_change_pill"
style="@style/PercentChangeTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="3dp"
android:paddingEnd="3dp"
tools:text="100%" />
</LinearLayout>
除了大牛的回答drawableEnd和drawableStart可以用于API_14+。所以如果你使用minSdkVersion < 14,除了[=12]你还必须使用drawableRight和drawableLeft =]drawableEnd 和 drawableStart.