--ADVERTISEMENT--

RecyclerTabLayout

An efficient TabLayout library implemented with RecyclerView.

Features

  • Efficient when having many tabs
  • Easy setup with ViewPager (same as TabLayout of Android Design Support Library)
  • RTL layout support

UseCase

  • Many tabs layout
  • Infinite loop scrolling (imitated)

Demos

Years
Loop
Basic
Icon

Samples

Getting started

In your build.gradle:
repositories {
    jcenter()
}

dependencies {
   compile 'com.nshmura:recyclertablayout:1.5.0'
}
Define RecyclerTabLayout in xml layout with custom attributes.
<com.nshmura.recyclertablayout.RecyclerTabLayout
        android:id="@+id/recycler_tab_layout"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        rtl_tabIndicatorColor="?attr/colorAccent"
        rtl_tabIndicatorHeight="2dp"
        rtl_tabBackground="?attr/selectableItemBackground"
        rtl_tabTextAppearance="@android:style/TextAppearance.Small"
        rtl_tabSelectedTextColor="?android:textColorPrimary"
        rtl_tabMinWidth="72dp"
        rtl_tabMaxWidth="264dp"
        rtl_tabPaddingStart="12dp"
        rtl_tabPaddingTop="0dp"
        rtl_tabPaddingEnd="12dp"
        rtl_tabPaddingBottom="0dp"
        rtl_tabPadding="0dp"/>
Set up with the ViewPager.
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
viewPager.setAdapter(adapter);

RecyclerTabLayout recyclerTabLayout = (RecyclerTabLayout) findViewById(R.id.recycler_tab_layout);
recyclerTabLayout.setUpWithViewPager(viewPager);
Or set up with ViewPager and Custom RecyclerView.Adapter that's extends RecyclerTabLayout.Adapter.
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
viewPager.setAdapter(adapter);

RecyclerTabLayout recyclerTabLayout = (RecyclerTabLayout) findViewById(R.id.recycler_tab_layout);
recyclerTabLayout.setUpWithAdapter(new CustomRecyclerViewAdapter(viewPager));
Here's sample of custom RecyclerView adapter.
public class CustomRecyclerViewAdapter extends RecyclerTabLayout.Adapter<CustomRecyclerViewAdapter.ViewHolder> {

    public DemoCustomView01Adapter(ViewPager viewPager) {
        super(viewPager);
        ...
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // Inflate your view.
        View view = ...;
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // Bind data
        ...
        
        if (position == getCurrentIndicatorPosition()) {
            //Highlight view
        }
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        ...
        
        public ViewHolder(View itemView) {
            super(itemView);
        ...
        }
    }
}

Attributes

attrdescription
rtl_tabIndicatorColorIndicator color
rtl_tabIndicatorHeightIndicator height
rtl_tabBackgroundBackground drawable of each tab
rtl_tabTextAppearanceTextAppearence of each tab
rtl_tabSelectedTextColorText color of selected tab
rtl_tabOnScreenLimitThe number of OnScreen tabs. If this value is larger than 0, rtl_tabMinWidth and rtl_tabMaxWidth are ignored.
rtl_tabMinWidthMinimum width of each tab
rtl_tabMaxWidthMaximum width of each tab
rtl_tabPaddingStartThe padding of the start edge of each tab
rtl_tabPaddingTopThe padding of the top edge of each tab
rtl_tabPaddingEndThe padding of the end edge of each tab
rtl_tabPaddingBottomThe padding of the bottom edge of each tab
rtl_tabPaddingThe padding of all four edges of each tab
rtl_scrollEnabledSets whether tab scrolling is enabled

Download From GitHub

Post a Comment

  1. If you're attempting to lose weight then you absolutely have to jump on this totally brand new personalized keto meal plan.

    To design this service, certified nutritionists, fitness trainers, and top chefs united to develop keto meal plans that are powerful, decent, cost-efficient, and enjoyable.

    Since their grand opening in January 2019, hundreds of clients have already transformed their body and health with the benefits a certified keto meal plan can offer.

    Speaking of benefits: clicking this link, you'll discover 8 scientifically-proven ones provided by the keto meal plan.

    ReplyDelete

Powered by Blogger.