ICS имеет компонент Switch. Он делает то, что нам нужно. Есть ли что-то обратно совместимое с (около) 2.2? Не удалось найти ничего очевидного.
Похоже, кто-то построил это:
ICS имеет компонент Switch. Он делает то, что нам нужно. Есть ли что-то обратно совместимое с (около) 2.2? Не удалось найти ничего очевидного.
Похоже, кто-то построил это:
Коммутатор работает только с 4.0 +
Если вы хотите создать приложение, использующее переключатель на устройствах с 4.0+, вам нужно объявить два макета. Первый в макете-v14, который будет использоваться на устройствах ICS. В вашей папке макета используйте CheckBox.
В вашем коде используется класс CompoundButton при получении/настройке данных из переключателя или флажка. Вы обнаружите, что CompoundButton хорошо работает для этого.
Поддержка 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
.
вы должны использовать флажок, когда такая вещь невозможна, как описано здесь:
(слайд 32)
Эта библиотека - это то, что вы ищете: https://github.com/BoD/android-switch-backport
Вот пример 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>
Если вы используете библиотеку holoeverywhere, вы можете использовать что-то подобное в вашем файле макета
<org.holoeverywhere.widget.Switch
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>