CoordinatorTabLayout

by hugeterry

Combination of TabLayout and CoordinatorLayout./TabLayout和CoordinatorLayout相结合的折叠控件

4.0K Stars 585 Forks Last release: Not found Apache License 2.0 76 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

CoordinatorTabLayout

License Download

中文版文档

CoordinatorTabLayout is a custom composite control that quickly implements the combination of TabLayout and CoordinatorLayout. Inherited to the CoordinatorLayout, in the following components used CollapsingToolbarLayout contains TabLayout.

show

Usage

Step 1

Add the following to your build.gradle:

groovy
dependencies {
    compile 'cn.hugeterry.coordinatortablayout:coordinatortablayout:1.2.2'
}

Step 2

Config in xml: ```xml


```

Step 3

show Use it in your own code: 1.

setTitle(String title)
:Set the CoordinatorTabLayout's title. 2.
setupWithViewPager(ViewPager viewPager)
:To link the two together. 3.
setImageArray(int[] imageArray)
:Set the image array of the header according to the number of tabs and pass it to the control. ```java //Add the fragment to the viewpager initFragments(); initViewPager(); //Image array mImageArray = new int[]{ R.mipmap.bgandroid, R.mipmap.bgios, R.mipmap.bgjs, R.mipmap.bgother};
    mCoordinatorTabLayout = (CoordinatorTabLayout) findViewById(R.id.coordinatortablayout);
    mCoordinatorTabLayout.setTitle("Demo")
            .setImageArray(mImageArray)
            .setupWithViewPager(mViewPager);
Finish, enjoy it.


More

Set the content scrim

show

setImageArray(int[] imageArray, int[] colorArray):Set the color array to use for the content scrim for each tab.

```java mColorArray = new int[]{ android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light}; mCoordinatorTabLayout.setImageArray(mImageArray, mColorArray);

Set translucent status bar

show

setTranslucentStatusBar(Activity activity)
:Set translucent status bar,Support android4.4 and above.
java
mCoordinatorTabLayout.setTranslucentStatusBar(activity);

Set translucent navigation bar

show

setTranslucentNavigationBar(Activity activity)
:Set translucent navigation bar,Support android4.4 and above.
java
mCoordinatorTabLayout.setTranslucentNavigationBar(activity);

Set back enable

setBackEnable(Boolean canBack)
:To enable the Up button for an activity that has a parent activity.
java
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        mCoordinatorTabLayout.setBackEnable(true);
        ...
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }

Load header images from network

setLoadHeaderImagesListener(LoadHeaderImagesListener loadHeaderImagesListener)
:Set the listener that gets the header images.
java
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        mCoordinatorTabLayout.setTitle("Demo")
                .setBackEnable(true)
                .setContentScrimColorArray(mColorArray)
                .setLoadHeaderImagesListener(new LoadHeaderImagesListener() {
                    @Override
                    public void loadHeaderImages(ImageView imageView, TabLayout.Tab tab) {
                        switch (tab.getPosition()) {
                            case 0:
                                //load header images
                                break;
                            ...
                        }
                    }
                })
                .setupWithViewPager(mViewPager);
    }
You also can load header images using glide/picasso,Sample

Set the behavior mode for the Tabs in this layout

setTabMode(@TabLayout.Mode int mode)
:The valid input options are:MODEFIXED,MODESCROLLABLE
java
mCoordinatorTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);

Add a CoordinatorTabLayout.OnTabSelectedListener

addOnTabSelectedListener(OnTabSelectedListener onTabSelectedListener)
:Add a CoordinatorTabLayout.OnTabSelectedListener that will be invoked when tab selection changes. ```java mCoordinatorTabLayout.addOnTabSelectedListener(new OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) {
                     }

                 @Override
                 public void onTabUnselected(TabLayout.Tab tab) {

                 }

                 @Override
                 public void onTabReselected(TabLayout.Tab tab) {

                 }
             })

Gets the child control

getActionBar():get the ActionBar
getTabLayout():get the TabLayout
getImageView():get the ImageView

More code

Attributes

  • app:contentScrim -> color.Defaults to ?attr/colorPrimary
  • app:tabIndicatorColor -> color.
  • app:tabTextColor -> color.

Demo

http://fir.im/ctlayout

LICENSE

Copyright 2017 HugeTerry.
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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.