2013-07-09 3 views
9

Мне нужен такой вид. Они не выглядят как tabs, поэтому я считаю, что они кнопки.Создание кнопок, которые выглядят как вкладки в android

enter image description here

Я могу для того чтобы достигнуть аналогичного типа с toggle button, держа селектор в Drawable.

<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" /> 

Но у них есть только два значения и нажав на выбранную вкладке получает другие выбранные и настоящие один невыбранный. Но я хочу точно как tab. Так может кто-то, пожалуйста, помогите мне достичь этого? Заранее спасибо.

+0

Не используйте кнопки переключения, возьмите четыре кнопки и селектор использования в Drawable. –

+0

@ManojPal Спасибо, но те, которые не дают, выглядят как вышеупомянутые угловые формы и все. Это также, выбрав одну кнопку, выбранную ранее, должна снова получить нормальный цвет. – rick

+0

его немного сложно, вы можете использовать изображения угловой формы в качестве фона в кнопках и добавить условие, что, если одна кнопка выбрана, измените другой фон кнопки как обычно. и это даст ощущение, как вкладка. –

ответ

13

Вы должны создать селектор для всех кнопки и использовать RadioGroup с фоном и кнопкой нуля ..

Follow @Andru ответа для создания Selector ..

Ниже Код радиогруппы.

<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> 

здесь приведен пример кода 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 Спасибо, проверит. – rick

1

вы можете сделать что-то вроде этого, вместо кнопки переключения используйте обычные кнопки.
, если кнопка "Data" щелкнула сделать как этот

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

, если кнопка "H-чарт" щелкнула

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

Используйте простую кнопку вместо кнопки Toogle. И установить фон, как это:

Я привожу пример для кнопки 1:

android:background="@drawable/data_button_select_state" 

И добавить файл XML в вашем «вытяжке» папку с именем 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> 

Теперь добавьте код Java-файл, как это:

при нажатии кнопки данные щелкнул:

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); 

     } 
    }); 

изменение др. Кнопка подобный это как хорошо. Это будет, возможно, поможет вам ...

+0

+1 спасибо. Попробуй. – rick

Смежные вопросы