最近项目遇到,四个Tab选项,其中一个Tab涉及到排序,因此需要给RadioButton加上两张图片表示升序或者降序。但是 用drawableRight加上图片之后,图片离总是在边上,离文字太远。百度了半天,可以给android:drawablePadding一个负值,本以为图片会向左侧移动,但是没想到文字却向图片靠拢.,整体则变成右对齐,就当时那叫一个无语.
想了半天,既然文字向图片移动,那么我就给RadioButton来一个PaddingRight(比如给DrawablePadding负值为-15dip,那么就给PaddingRight15dip),然后,又变成居中了。虽然办法比较笨,但是解决了。
下面是代码:
XML:
<RadioGroup
android:id="@+id/rg_nav_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#F2F2F2"
android:orientation="horizontal">
<RadioButton
android:id="@+id/tab1"
android:text="综合"
style="@style/mall_goods_tab"
android:checked="true"/>
<RadioButton
android:id="@+id/tab2"
android:text="销量"
style="@style/mall_goods_tab"
/>
<RadioButton
android:id="@+id/tab3"
android:text="价格"
android:paddingRight="20dp"
style="@style/mall_goods_tab"
android:button="@drawable/sort_up"
android:drawablePadding="-15dp"
android:drawableRight="@drawable/sort_up"
/>
<RadioButton
android:id="@+id/tab4"
android:text="新品"
style="@style/mall_goods_tab"
/>
</RadioGroup>
style
<style name="mall_goods_tab">
<item name="android:textSize">@dimen/sp_18</item>
<item name="android:textColor">@drawable/mall_tab_selector</item>
<item name="android:gravity">center</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">@dimen/dp_66</item>
<item name="android:button">@null</item>
<item name="android:paddingTop">@dimen/dp_15</item>
<item name="android:paddingBottom">@dimen/dp_15</item>
<item name="android:singleLine">true</item>
<item name="android:background">@color/white</item>
<item name="android:layout_weight">1.0</item>
</style>
效果图:
如果帮到你了,请帮忙留个脚印,谢谢!