jaycee88/Android-Toggle-Switch


A customizable extension to Android switches that supports many items.

Download


Step 1. Add the JitPack repository to your build file

Add it in your root settings.gradle at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url 'https://jitpack.io' }
		}
	}

Add it in your settings.gradle.kts at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url = uri("https://jitpack.io") }
		}
	}

Add to pom.xml

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>

Add it in your build.sbt at the end of resolvers:

 
    resolvers += "jitpack" at "https://jitpack.io"
        
    

Add it in your project.clj at the end of repositories:

 
    :repositories [["jitpack" "https://jitpack.io"]]
        
    

Step 2. Add the dependency

	dependencies {
		implementation 'com.github.jaycee88:Android-Toggle-Switch:1.2.3.1'
	}
	dependencies {
		implementation("com.github.jaycee88:Android-Toggle-Switch:1.2.3.1")
	}
	<dependency>
	    <groupId>com.github.jaycee88</groupId>
	    <artifactId>Android-Toggle-Switch</artifactId>
	    <version>1.2.3.1</version>
	</dependency>

                            
    libraryDependencies += "com.github.jaycee88" % "Android-Toggle-Switch" % "1.2.3.1"
        
        

                            
    :dependencies [[com.github.jaycee88/Android-Toggle-Switch "1.2.3.1"]]
        
        

Readme


Android-Toggle-Switch

Alt text Android Arsenal Alt 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

ToggleSwitch toggleSwitch = (ToggleSwitch) findViewById(R.id.multiple_switches);
ArrayList<String> labels = new ArrayList<>();
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
int position = toggleSwitch.getCheckedTogglePosition();
  • void setCheckedTogglePosition(int position) Checks the position passed as argument
int position = 3;
toggleSwitch.setCheckedTogglePosition(position);

Multiple Toggle Switch

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

Listeners

toggleSwitch.setOnToggleSwitchChangeListener(new ToggleSwitch.OnToggleSwitchChangeListener(){

            @Override
            public void onToggleSwitchChangeListener(int position, boolean isChecked) {
				// Write your code ... 
            }
        });

Customization

Attributes

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

| Option Name | Format | Description | | ---------------- | ---------------------- | ----------------------------- | | android:textSize | dimension | Text size of each button | | custom:activeBgColor | color | Background color of the checked button | | custom:activeTextColor | color | Text color of the checked button | | custom:inactiveBgColor | color | Background color of the inactive buttons | | custom:inactiveTextColor | color | Text color of the inactive buttons | | custom:separatorColor | color | Color of the vertical separator between inactive buttons | | custom:toggleWidth | dimension | Width of each button | | custom:cornerRadius | dimension | Corner 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, Android Developer @Belka, 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

Alt text

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