Подтвердить что ты не робот

Переключатель с обратной совместимостью

ICS имеет компонент Switch. Он делает то, что нам нужно. Есть ли что-то обратно совместимое с (около) 2.2? Не удалось найти ничего очевидного.


Похоже, кто-то построил это:

https://github.com/Prototik/KFramework-SW.git

4b9b3361

Ответ 1

Коммутатор работает только с 4.0 +

Если вы хотите создать приложение, использующее переключатель на устройствах с 4.0+, вам нужно объявить два макета. Первый в макете-v14, который будет использоваться на устройствах ICS. В вашей папке макета используйте CheckBox.

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

Ответ 2

Поддержка Android. Библиотека AppCompat из версии 21.0.0 содержит android.support.v7.widget.SwitchCompat для обеспечения совместимости с API v7. https://developer.android.com/reference/android/support/v7/widget/SwitchCompat.html

Включите его так: gradle:

compile 'com.android.support:appcompat-v7:21.0.0'

Его можно использовать в макетах следующим образом:

<android.support.v7.widget.SwitchCompat />

Кроме того, у него есть атрибут showText, чтобы упростить стилизацию - что, кажется, отсутствует в native andriod Switch.

Ответ 5

Вот пример SwitchCompat

Прежде всего, убедитесь, что вы добавили эти строки в build.gradle, а затем синхронизировали.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
}

Во-вторых создайте образец Activity, в моем случае я назову его SwitchActivity.java.

public class SwitchActivity extends ActionBarActivity {

        SwitchCompat mySwitch = null;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_switch);

            // here is your switch
            mySwitch = (SwitchCompat)findViewById(R.id.myswitch);

        }
        .....
}

Наконец, создайте свой макет, в моем случае я назову его activity_switch.xml.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.neoecosystem.samplex.SwitchActivity">

    <android.support.v7.widget.SwitchCompat
        android:id="@+id/myswitch"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" />

</RelativeLayout>

Ответ 6

Если вы используете библиотеку holoeverywhere, вы можете использовать что-то подобное в вашем файле макета

<org.holoeverywhere.widget.Switch
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
 />