Popularity
7.8
Stable
Activity
0.0
Stable
1,411
91
407

Code Quality Rank: L4
Programming language: Java
Tags: Material Widget    

MaterialTabs alternatives and similar packages

Based on the "Material Widget" category.
Alternatively, view MaterialTabs alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of MaterialTabs or a related project?

Add another 'Material Widget' Package

README

MaterialTabs

Custom Tabs with Material Design animations for pre-Lollipop devices Android Arsenal     Donate

Download example apk

It requires 14+ API and android support v7 (Toolbar)

IMPORTANT NOTICE

This library is no longer supported. I have not enough time to continue developing at this time and the android design support library implements the tabs features in the better way, so I think it is useless now. If anyone wants to keep alive this library they can send pull requests AFTER testing the code and exmplaining what they have changed and why. Thanks to all contributors

Dependency: Android-UI Reveal Color View If you are using MaterialTabs in your app and would like to be listed here, please let me know via email!

How to use: define it in xml layout with custom attributes

<!-- for Text Tabs -->
<it.neokree.materialtabs.MaterialTabHost
        android:id="@+id/materialTabHost"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        app:textColor="#FFFFFF"
        app:primaryColor="YOUR_PRIMARY_COLOR"
        app:accentColor="YOUR_ACCENT_COLOR" />
<!-- for icon tabs --> 
<it.neokree.materialtabs.MaterialTabHost
        android:id="@+id/materialTabHost"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        app:iconColor="#FFFFFF"
        app:primaryColor="YOUR_PRIMARY_COLOR"
        app:accentColor="YOUR_ACCENT_COLOR"
        app:hasIcons="true"/>

( I'm working on use wrap_content instead 48dp)

Connect to java code and add to viewPager

MaterialTabHost tabHost;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tabHost = (MaterialTabHost) this.findViewById(R.id.materialTabHost);
        pager = (ViewPager) this.findViewById(R.id.viewpager);

        // init view pager
        pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
        pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                // when user do a swipe the selected tab change
                tabHost.setSelectedNavigationItem(position);
            }
        });

        // insert all tabs from pagerAdapter data
        for (int i = 0; i < pagerAdapter.getCount(); i++) {
            tabHost.addTab(
                    tabHost.newTab() 
                            .setIcon(getIcon(i))
                            .setTabListener(this)
                            );
    }
}

@Override
    public void onTabSelected(MaterialTab tab) {
        // when the tab is clicked the pager swipe content to the tab position
        pager.setCurrentItem(tab.getPosition());

    }

N.B. Your activity must extends ActionBarActivity implements MaterialTabListener

How to import

Android Studio

Add this to your build.gradle:

dependencies {
    compile 'it.neokree:MaterialTabs:0.11'
}

Limitations Actually, this library have some limitations:

  • No selector animations

These problems are currently in development

Fixed and Scrollable tabs.

With text tabs

[1 - 3] Fixed Tabs [4 - ∞] Scrollable Tabs

With icon tabs

[1 - 5] Fixed Tabs [6 - ∞] Scrollable Tabs