Step indicator with titles/labels and tons of customizations.

Overview

PageStepIndicator was built from existing StepIndicator library developed by Layerlre . I needed a page indicator that can display title and at the same time have a transparent border, but I couldn't find one. So I modified the existing StepIndicator's source code to suit my needs, and shamelessly published it as a new library.

Preview

How To Use

  • Add PageStepIndicator to your app.

Add it to your root build.gradle at the end of repositories:

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Add the dependency

dependencies {
	        implementation 'com.github.devmike01:pagestepindicator:1.1.1'
	}
  • Add PageStepIndicator to your layout. E.g:
    <devmike.jade.com.PageStepIndicator
            app:pgTitles="@array/titles"
            app:pgTitleTextSize="15sp"
            app:pgStrokeAlpha="255"
            app:pgRadius="15dp"
            app:pgCurrentStepColor="@android:color/holo_red_dark"
            app:pgTextColor="@android:color/white"
            app:pgStepColor="@android:color/holo_purple"
            android:id="@+id/page_stepper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
  • Create a pager adapter by extending FragmentStatePagerAdapter or FragmentPagerAdapter.

  • Setup the adapter with your viewpager.

  • Call setupWithViewPager(ViewPager) from PageStepIndicator and pass the instance of your viewpager as an argument to it.

That's all. You can customize it the way you want.

Customization

  • pgStepColor Color of the step indicator
  • pgCurrentStepColor Color of the current step
  • pgBackgroundColor Background color of the step indicator
  • pgTextColor Active step position color
  • pgSecondaryTextColor Inactive step position color
  • pgRadius Radius of the step indicator
  • pgStrokeWidth Stroke Width of a current step
  • pgStepCount Size of step (With out ViewPager)
  • pgTitles Title of pages
  • pgActiveTitleColor Current color of page's title
  • pgInActiveTitleColor Color of your previous or future page's title
  • pgTitleTextSize Size of your page's title
  • pgLineHeight Height of indicator line
  • pgStrokeAlpha Opacity of current stroke(255 means the color is solid)

License

Copyright 2018 Oladipupo Gbenga

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You might also like...
Android application allowing to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets on a Samsung Galaxy S20
Android application allowing to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets on a Samsung Galaxy S20

This Android application allows to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets from a Samsung Galaxy S20 smartphone. It interacts with a set of patches installed on the phone Bluetooth controller, allowing to add new capabilities to communicate using the previously mentioned protocols.

๐ŸŒ„ Photo editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and PhotoEditor (Android)
๐ŸŒ„ Photo editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and PhotoEditor (Android)

React Native Photo Editor (RNPE) ๐ŸŒ„ Image editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and Ph

๐ŸŽฅ A Simple and Minimal Movies Android Application to demonstrate the Modern Android Development and Jetpack Compose.
๐ŸŽฅ A Simple and Minimal Movies Android Application to demonstrate the Modern Android Development and Jetpack Compose.

ComposeMovie Android ๐ŸŽฅ A Simple and Minimal Movies Android Application to demonstrate the Modern Android Development and Jetpack Compose. Built with

Android app for streaming and downloading Movies, TV-Series and Anime.
Android app for streaming and downloading Movies, TV-Series and Anime.

CloudStream-3 DOWNLOAD: https://github.com/LagradOst/CloudStream-3/releases Discord: https://discord.gg/5Hus6fM Features: AdFree, No ads whatsoever No

Money Manager app that helps you to add your daily small incomes and expenses and track them easily.
Money Manager app that helps you to add your daily small incomes and expenses and track them easily.

Simple Money Manager This app is a simple money manager app which helps you to add your daily small incomes and expenses and track them easily. Screen

A sample app that uses CameraX and Milkit to scan multiple barcodes and QR code
A sample app that uses CameraX and Milkit to scan multiple barcodes and QR code

MLKit-QR-and-Barcode-Scanner This sample app uses Firebase MLKit to scan bar codes and QR Codes There are a number of types of barcodes, MLKKIt is abl

Display's information about SpaceX crew members and ships by consuming a rest api and storing the data to display when the user is offline.

Space-X App Display's information about SpaceX crew members(look for โ€˜Crewโ€™ section in rest api docs) and ships (look for โ€˜Shipsโ€™ section in rest api

A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a Premier League and French Ligue 1
A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a Premier League and French Ligue 1

RapidScore Screenshots Table of Contents Description Dependencies API Reference Lessons Learnt Contributing Roadmap Google Playstore License Author In

The BirthYaay app provides an organized way of documenting birthdays of friends, colleagues, family members and so on. The app provides a beauty UI with suggestions of birthday gifts and messages crafted based on celebrant interests.
Comments
  • Disable touch

    Disable touch

    Hi, thanks for the library. How do I disable selecting the indicators? I had tried enable = false and clickable = false but none of these work. I don't want users to use the indicators as navigation.

    enhancement 
    opened by saintjab 3
  • Disable showing the title

    Disable showing the title

    Hi,

    Thank you for your library. I found this very useful on my current design requirements. I just have one question. Is there a way that i can disable showing the title?

    opened by mamingjojo 0
  • Cant disable touch

    Cant disable touch

    Hi @devmike01 ,

    Thank you for your library. I found this very useful on my current design requirements.

    I tried disabling the step click by adding app:pgEnableStepClick="false" and setEnableStepClick(false). But i can still click the step.

    I am already using this version: 1.1.2-alpha02

    opened by mamingjojo 1
Releases(2.0.0-beta02)
Owner
Gbenga Oladipupo
Native(Kotlin/Java) Android Developer | Flutter Developer | Python programmer.
Gbenga Oladipupo
An app that is a one-stop destination for all the CS enthusiasts, providing resources like Information scrapping techniques, best YT channels, courses available free-of-cost, etc. & knowledge about every domain and field that exists on the Internet related to Computer Science along with News, Jobs, and Internships opportunities in these domains along with valuable tips and hacks from mentors for a particular domain.

An app that is a one-stop destination for all the CS enthusiasts, providing resources like Information scrapping techniques, best YT channels, courses available free-of-cost, etc. & knowledge about every domain and field that exists on the Internet related to Computer Science along with News, Jobs, and Internships opportunities in these domains along with valuable tips and hacks from mentors for a particular domain.

CSwala 48 Nov 26, 2022
Taskify - An app to manage your daily tasks and boost your productivity. Taskify is built using kotlin and follows all modern android Development practices and hence is a good learning resource for beginners

Taskify Taskify is an app to manage your daily tasks and boost your productivity Video Introduction ?? This is a small introduction video about Taskif

Vaibhav Jaiswal 101 Jan 4, 2023
A news application through which you can learn and browse all the news that interests you by choosing the country and type of news with the ability to browse and add some news to your favorites

MY-NEWS-Android A news application through which you can learn and browse all the news that interests you by choosing the country and type of news wit

Mahmoud ELramady 0 Nov 11, 2021
Communicating between Wear OS and Android device using the OpWear module and a sample of displaying real-time camera on the watch and sending commands to the mobile by Wear OS.

OpWear-Cam Communicating between Wear OS and Android device using the OpWear module and a sample of displaying real-time camera on the watch and sendi

AmirHosseinAghajari 6 Nov 8, 2022
Quick photo and video camera with a flash, customizable resolution and no ads.

Simple Camera A camera with flash, zoom and no ads. The camera is usable for both photo taking and video recording. You can switch between front and r

Simple Mobile Tools 644 Dec 26, 2022
Tachiyomi 20.4k Jan 9, 2023
TrackerControl: monitor and control trackers and ads.

About TrackerControl Download directly here, from F-Droid, or a feature-reduced version from Google Play. If you have missing features or bugs, join t

Oxford HCC 1.1k Jan 9, 2023
Easy and quick contact management with no ads, handles groups and favorites too.

Simple Contacts A simple app for creating or managing your contacts from any source. The contacts can be stored on your device only, but also synchron

Simple Mobile Tools 621 Dec 26, 2022
when you use restful api and network get disconnect you have to store your data local for make your app faster and work on ofline mode

AppArchitectureOflineMode when you use restful api and network get disconnect you have to store your data local for make your app faster and work on o

Kareem-Mansy 3 Jun 20, 2021