2016-09-13 93 views
0

我想爲我想要的一些單選按鈕創建一些自定義可繪製選擇器。下面是我想要我的可繪製選擇器的示例。他們是PublicFollowers選擇,如下圖所示:創建自定義可繪製選擇器?

enter image description here

的問題是我有我的造型選擇以這種方式麻煩,我似乎無法弄清楚,爲什麼我不能得到的輪廓灰色,背景爲未選定的單選按鈕上的白色。

這是我的嘗試:

privacy_toggle_layout.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <RadioGroup 
    android:layout_margin="16dp" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:checkedButton="@+id/offer" 
     android:id="@+id/privacy_toggle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/pick_out_line" 
     android:orientation="horizontal"> 

     <RadioButton 
      android:id="@+id/public_toggle" 
      android:background="@drawable/toggle_widget_background" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:button="@null" 
      android:gravity="center" 
      android:text="@string/publicString" 
      android:textAllCaps="true" 
      android:textSize="18sp" 
      android:textColor="@color/white" /> 

     <RadioButton 
      android:id="@+id/followers_toggle" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@drawable/toggle_widget_background" 
      android:button="@null" 
      android:gravity="center" 
      android:text="@string/followers" 
      android:checked="true" 
      android:textSize="18sp" 
      android:textAllCaps="true" 
      android:textColor="@color/white" /> 
    </RadioGroup> 

繪製/ pick_out_line.xml:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners android:radius="2dp" /> 
    <solid android:color="@color/teal" /> 
    <stroke 
     android:width="5dp" 
     android:color="@color/material_color_grey_400" /> 
</shape> 

toggle_widget_background.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/teal" android:state_checked="true" /> 
    <item android:drawable="@color/teal" android:state_pressed="true" /> 
    <item android:drawable="@color/white" /> 
</selector> 

我在pick_out_line.xml中想到,將stroke設置爲5dp應該使邊框變灰,但它不會在RadioButton上顯示爲灰色。此外,我似乎無法弄清楚如何使帶有灰色文本的白色背景的未選中的RadioButton。如果有人能幫助我,那會很棒。謝謝。

回答

0

你錯了。該組織不應有任何背景。製作pick_out_line.xml的兩個版本,一個pick_out_line_selected和一個pick_out_line_unselected.xml。設計每一個你想要它在那個狀態。然後編輯toggle_widget_background.xml文件,android:drawable應該是上面的2個文件,而不是顏色。將此文件設置爲切換的背景。