Skip to content

kiok46/garden.androidtabs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#AndroidTabs Kivy widget that try to reproduce Android tabs behaviour.
Video preview @ https://www.youtube.com/watch?v=0nlUIbQrf5k

##Usage summary AndroidTabs allow you to create your own custom tabbed panel with an animated tab indicator in a easy way. Just create your tabs that must inherit from AndroidTabsBase and add them to an AndroidTabs instance.

##How it works To understand how it works just look at the structure in the Kivy language:

<AndroidTabs>:
    AndroidTabsMain:
        AndroidTabsCarousel:
            MyTab:                  # Tabs must inherit from AndroidTabsBase
                text: 'tab 1'
            MyTab:
                text: 'tab 2'

    AndroidTabsBar:
        AndroidTabsScrollView:
            Gridlayout:
                AndroidTabsLabel:   # Automatically added when you add a Tab to AndroidTabs
                AndroidTabsLabel:   # so you don't need add them manually
                

As you can see it contains two widgets, AndroidTabsMain that containing the Carousel, and AndroidTabsBar that contains the Scrollview.
Each time you add a Tab to AndroidTabs, it adds the Tab to the carousel and creates and adds an AndroidTabsLabel instance to the GridLayout of the Scrollview.

##Example

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.garden.androidtabs import *


class MyTab(BoxLayout, AndroidTabsBase):

    pass

class Example(App):

    def build(self):

        android_tabs = AndroidTabs()

        for n in range(1, 6):
            tab = MyTab(text='TAB %s' % n)
            android_tabs.add_widget(tab)

        return android_tabs

Example().run()

##Customization With kivy language you can customize each widget like below:

<AndroidTabs>:
    tab_indicator_height: '2dp'
    anim_threshold: 0

<AndroidTabsLabel>:
    text_color_active: 1, 1, 1, 1

##AndroidTabs properties

  • default_tab - Index of the default tab. NumericProperty(0)
  • tab_bar_height - Height of the tab bar. NumericProperty('48dp')
  • tab_indicator_anim - Tab indicator animation. BooleanProperty(True)
  • tab_indicator_height - Height of the tab indicator. NumeriProperty('2dp')
  • tab_indicator_color - Rgba color of the tab indicator. VariableListProperty([1,1,1,1])
  • anim_duration - Duration of the slide animation. NumericProperty(0.2)
  • anim_threshold - Accepts 0.0 to 1.0 and directly affects indicator animation effect. BoundedNumeriProperty(0.8)

##AndroidTabsLabel properties

  • text_color_normal - Text color of the label when it is not selected. VariableListProperty([1, 1, 1, .6])
  • text_color_active - Text color of the label when it is selected. VariableListProperty([1])

##Bugs and requests If you have found a bug or if you have a request for additional functionality, or if you have an idea to improve the code, please use the issue tracker on GitHub @ https://github.com/kivy-garden/garden.androidtabs/issues

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%