Skip to content

Repository files navigation

Android-Toggle-Switch

Deprecation notice: this library is no longer maintained. If you are currently using it, we reccomend switching to the fork by its original developer: https://github.com/llollox/Android-Toggle-Switch

Alt textAndroid ArsenalAlt text

A customizable extension of Android Switches that supports also more than 2 items.

Sample of libray

Installation

Gradle

Add Gradle dependency:

dependencies {
compile 'us.belka:androidtoggleswitch:1.2.2'
}

Maven

<dependency>
<groupId>us.belka</groupId>
<artifactId>androidtoggleswitch</artifactId>
<version>1.2.2</version>
<type>pom</type>
</dependency>

Usage

2 Items

<belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"custom:textToggleLeft="OR"custom:textToggleRight="AND"/>

Sample of libray with 2 items

3 Items

<belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"custom:textToggleCenter="XOR"custom:textToggleLeft="OR"custom:textToggleRight="AND"/>

Sample of libray with 3 items

N - Items support

This can be accomplished only programmatically.

XML

<belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"/>

JAVA code

ToggleSwitchtoggleSwitch = (ToggleSwitch) findViewById(R.id.multiple_switches);
ArrayList<String> labels = newArrayList<>();
labels.add("AND");
labels.add("OR");
labels.add("XOR");
labels.add("NOT");
labels.add("OFF");
toggleSwitch.setLabels(labels);

Sample of libray with 3 items

NOTE: Providing a custom array of labels, the attributes textToggle[Left/Center/Right] will be ignored.

Multiple checked items support

<belka.us.androidtoggleswitch.widgets.MultipleToggleSwitch
android:id="@+id/multiple_toggle_switch"android:layout_width="wrap_content"android:layout_height="wrap_content"custom:textToggleCenter="Center"custom:textToggleLeft="Left"custom:textToggleRight="Right"android:layout_gravity="center"custom:toggleWidth="82dp"/> 

NOTE: Please not that it's a different widget MultipleToggleSwitch instead of the previous ToggleSwitch.

Getters and Setters

Toggle Switch

  • int getCheckedTogglePosition() Returns the current checked position
intposition = toggleSwitch.getCheckedTogglePosition();
  • void setCheckedTogglePosition(int position) Checks the position passed as argument
intposition = 3;
toggleSwitch.setCheckedTogglePosition(position);

Multiple Toggle Switch

  • void setCheckedTogglePosition(int position) Checks the position passed as argument
intposition = 3;
multipleToggleSwitch.setCheckedTogglePosition(position);
  • void setUncheckedTogglePosition(int position) Unchecks the position passed as argument
intposition = 0;
multipleToggleSwitch.setUncheckedTogglePosition(position);
  • Set<Integer> getCheckedTogglePositions() Returns the set of the current checked positions
Set<Integer> checkedPositions = multipleToggleSwitch.getCheckedTogglePositions();

Listeners

toggleSwitch.setOnToggleSwitchChangeListener(newToggleSwitch.OnToggleSwitchChangeListener(){
@OverridepublicvoidonToggleSwitchChangeListener(intposition, booleanisChecked) {
// Write your code ... 
}
});

Customization

Attributes

It is possible to customize the buttons applying the following options:

Option NameFormatDescription
android:textSizedimensionText size of each button
custom:activeBgColorcolorBackground color of the checked button
custom:activeTextColorcolorText color of the checked button
custom:inactiveBgColorcolorBackground color of the inactive buttons
custom:inactiveTextColorcolorText color of the inactive buttons
custom:separatorColorcolorColor of the vertical separator between inactive buttons
custom:toggleWidthdimensionWidth of each button
custom:cornerRadiusdimensionCorner Radius in dp

Example

<belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp"custom:activeBgColor="@android:color/holo_blue_dark"custom:activeTextColor="@android:color/white"custom:inactiveBgColor="@android:color/white"custom:inactiveTextColor="@android:color/black"custom:separatorColor="@color/gray_very_light"custom:textToggleCenter="APPLE"custom:textToggleLeft="ORANGE"custom:textToggleRight="BANANA"custom:toggleWidth="104dp"/>

Sample of libray with 3 items

Contributors

Lorenzo Rigato, Fabrizio Rizzonelli, Android Developer @Belka

License

Android-Toggle-Switch is Copyright (c) 2016 Belka, srl. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About Belka

Belka Logo

Belka is a Digital Agency specialized in design, mobile applications development and custom solutions. We love open source software! You can see our projects or look at our case studies.

Interested? Hire us to help build your next amazing project.

www.belka.us

About

A customizable extension to Android switches that supports many items.

Resources

Stars

473 stars

Watchers

19 watching

Forks

Releases

Packages

Contributors

Languages