Android - 切换按钮上的文本叠加图标

时间:2014-02-09 22:28:43

标签: android android-layout user-interface samsung-mobile togglebutton

Expected result

我有一个带有图标和文字的切换按钮,如上图所示(用绿色箭头指向)。我测试的大多数设备工作得很好。

到目前为止,两个三星平板电脑(三星Galaxy Tab 7.0和一个10英寸Galaxy Tab)存在这个问题,其中文本覆盖图标(用红色箭头指向),如下所示。

Error in style

我已经尝试了所有的aligments,paddings等没有工作结果。

网络和SO出人意料地没有提出解决方案,也没有问题。

这是我现在用于切换按钮的XML。它在其他定义中包含在RelativeLayout中:

<ToggleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/label_subscriptions"
    android:id="@+id/subscription_button"
    android:textOff="@string/btn_subscribe"
    android:textOn="@string/btn_subscribed"
    android:button="@drawable/star_selector"
    android:background="@android:color/transparent"
    android:textColor="@color/textColor"
    android:layout_toLeftOf="@+id/navigation_next_item"
    android:layout_alignBottom="@+id/channel_headline_image"
    />

@drawable/star_selector具有以下定义:

<selector  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/ic_like" />
    <item android:state_checked="true" android:drawable="@drawable/ic_liked_fav" />
 </selector>

感谢您提供指示我正确方向的任何提示!

2 个答案:

答案 0 :(得分:1)

实际上它不适用于较低的API

更改

 android:button="@drawable/star_selector"

android:drawableLeft="@drawable/star_selector"

希望它会有所帮助。

答案 1 :(得分:0)

要正确使用crossVersion,您应该使用drawableStart而不是drawableLeft。此问题仅适用于Android 4.1 如果你使用drawableLeft,你将无法在text和drawable之间添加填充,但是使用drawableStart你可以使用&#34; drawablePadding&#34;属性

问候!!!