在EditText中,drawableLeft和drawableStart有什么不同?

17

起初我认为 drawableStart 属性会在系统语言切换到从右向左书写的阿拉伯语时,自动更改图标位置。但当我尝试这样做时,并没有发生任何变化。 因此我猜它们是一样的?

1个回答

41

我不确定上面的答案是否正确。根据我的实验,除非您更改语言并启用RTL支持,否则图标始终在相同位置。

drawableStartdrawableEnd只有在API Level 17及以上启用RTL支持时才开始切换位置。

将应用程序的所有“左/右”布局属性更改为新的“start/end”等效项。

  • 如果您的应用程序针对Android 4.2(应用程序的targetSdkVersion或minSdkVersion为17或更高版本),则应使用“start”和“end”而不是“left”和“right”。例如,android:paddingLeft 应该变成 android:paddingStart。

  • 如果您希望您的应用程序与早于Android 4.2的版本兼容(应用程序的targetSdkVersion或minSdkVersion小于等于16),则应同时添加“start”和“end”以及“left”和“right”。例如,您将同时使用android:paddingLeft和android:paddingStart。


2
这是正确的答案,而不是被接受的那个。 - Alex Semeniuk
2
在我的情况下,当我将图像放置在按钮的drawableLeft上时,它是可见的,但当我将相同的图像放置在drawableStart上时,图像会变得不可见。<Button android:id="@+id/btnGgle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableStart="@drawable/ggle_logo" android:gravity="center_horizontal|center_vertical" android:padding="15dp" android:text="@string/ggle" app:backgroundTint="@color/white" app:cornerRadius="10dp" /> - Suthar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接