2013-07-09 16 views
9

Chcę tego rodzaju wygląd. Nie wydają się być tabs, więc uważam, że są to przyciski.Tworzenie przycisków wyglądających jak zakładki w Androidzie

enter image description here

jestem w stanie acheive podobny typ z toggle button trzymając selektor w rozciągliwej.

<ToggleButton 
    android:id="@+id/toggleButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/custom_selector"  
    android:textOn=" Button1 Button2" 
    android:textOff=" Button1 Button2" /> 

Ale mają tylko dwie wartości i kliknięcie na wybranej zakładce powoduje, że wybrana i obecna nie jest zaznaczona. Ale chcę dokładnie taką kartę. Czy ktoś może mi pomóc w osiągnięciu tego? Z góry dziękuję.

+0

nie wolno używać przycisku przełączania, wziąć cztery przyciski i pokrętło stosowanie w rozciągliwej. –

+0

@ManojPal Dzięki, ale te nie wyglądają jak te narożne kształty i wszystko. To też, wybierając jeden przycisk, przycisk wybrany wcześniej powinien ponownie uzyskać normalny kolor. – rick

+0

jest to nieco skomplikowane, możesz użyć obrazów w kształcie narożnika jako tła w przyciskach i dodać warunek, że jeśli zostanie wybrany jeden przycisk, zmień inne tło przycisku, tak jak zwykle. i da wrażenie tab. –

Odpowiedz

13

Trzeba utworzyć przycisk wybieraka dla wszystkich i użyć RadioGroup z tłem selekcyjny i zerowej przycisku ..

Obserwuj @Andru odpowiedź na tworzenie Selector ..

Poniżej Kod RadioGroup.

<RadioGroup 
    android:id="@+id/rdogrp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <RadioButton 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn1Selector" 
     android:button="@null" 
     android:checked="true" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn2Selector" 
     android:button="@null" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn3Selector" 
     android:button="@null" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn4Selector" 
     android:button="@null" 
     android:gravity="center" /> 
</RadioGroup> 

tutaj jest przykładowy kod dla btn1Selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/btn1_selected" android:state_checked="true" /> 
    <item android:drawable="@drawable/btn1_normal" android:state_checked="false"/> 
</selector> 
+0

+1 Dzięki, sprawdzi to. – rick

1

możesz zrobić coś takiego, zamiast przycisku przełączania użyj zwykłych przycisków. jeśli przycisk
"Dane" kliknął lubię tego

data(View v) 
{ 
    databtn.setBackgroundResource(R.drawable.image1); 
    w_chartbtn.setBackgroundResource(R.drawable.image2); 
    H_chartbtn.setBackgroundResource(R.drawable.image2); 
} 

jeśli przycisk "H-chart" kliknięciu

H_chart(View v) 
{ 
    databtn.setBackgroundResource(R.drawable.image2); 
    w_chartbtn.setBackgroundResource(R.drawable.image2); 
    H_chartbtn.setBackgroundResource(R.drawable.image1); 
} 
1

używać prostych przycisk zamiast przycisku toogle. I ustawić tło tak:

daję przykład dla 1 przycisku:

android:background="@drawable/data_button_select_state" 

i dodać plik xml w swoim 'rozciągliwej' folder o nazwie data_button_select_state:

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

teraz dodać kod w plik Java tak:

po kliknięciu przycisku dane:

data_button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      data_button.setActivated(true); 
      H_chart_button.setActivated(false); 
          w_chart_button.setActivated(false); 
          hc_chart_button.setActivated(false); 

     } 
    }); 

zmienić inny przycisk podobny do tego. Ta wola może pomóc ...

+0

+1 dzięki. Spróbuję tego. – rick