Android: как создать слайд (вкл / выкл) кнопку - PullRequest
12 голосов
/ 16 ноября 2011

Я хотел бы создать ползунковую кнопку (= что-то в качестве переключателя) с двумя состояниями: включено и выключено, чтобы пользователю пришлось нажимать кнопку и сдвигать ее, чтобы изменить состояние (что-то похожее на разблокировку слайдера, но не пересечение целогоэкран).У вас есть идеи, как это сделать?Я действительно пытался найти ответ, но мне не удалось.

Большое спасибо!

Ответы [ 3 ]

12 голосов
/ 16 ноября 2011

// в вашем макете следующая строка

<RelativeLayout android:layout_width="wrap_content" android:id="@+id/rl_onoff"
    android:layout_height="wrap_content">
<ImageView android:id="@+id/on_btn" android:layout_width="80dp"  android:layout_height="40dp" android:src="@drawable/on_btn" android:visibility="visible"></ImageView>
<ImageView android:id="@+id/off_btn" android:layout_width="80dp"  android:layout_height="40dp" android:src="@drawable/off_btn" android:visibility="invisible"></ImageView>
   </RelativeLayout>

// в вашей активности вызовите это

ImageView mNotification_on_btn=(ImageView)findViewById(R.id.on_btn);
ImageView mNotification_off_btn=(ImageView)findViewById(R.id.off_btn);

    mNotification_on_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_on_btn.setVisibility(View.GONE);
                mNotification_off_btn.setVisibility(View.VISIBLE);
            }
        });
    mNotification_off_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_off_btn.setVisibility(View.GONE);
                mNotification_on_btn.setVisibility(View.VISIBLE);
            }
        });

// это переключится как стиль iphone на кнопку выключения enter image description here enter image description here

10 голосов
/ 14 декабря 2011

Что ж, похоже, Переключатель - лучшее решение, если ваш целевой SDK выше 4.0 (Ice Cream Sandwich). Так что для других, кто столкнется с той же проблемой, посмотрите на это. :)

1 голос
/ 20 мая 2013

Вы можете достичь этого, используя флажок или ToggleButton.Ниже приведен пример

xml-файла

 <CheckBox
        android:id="@+id/check_on_of"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/chec_box_on_off"
       />

drawable chec_box_on_off file is

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

, вы получите кнопку включения, а также вы можете проверить, установлен ли флажокили выключен.

java-код

 CheckBox check = (CheckBox)findViewById(R.id.check_on_of);
 check.isChecked();

Аналогично, вы также можете добиться этого с помощью ToggleButton.

...