maven { url "https://jitpack.io" }
//noinspection GradleCompatible implementation 'com.android.support:design:26.1.0' compile 'cn.hugeterry.coordinatortablayout:coordinatortablayout:1.2.2' //RecyclerView 快速适配器 compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
这几张图其实是不一样的
1.MainAc
public class MainActivity extends AppCompatActivity {
private String[] titles = {"第一个", "第二个", "第三个", "第四个"};
private ArrayList<Fragment> fragmentList;
private int[] mImageArray, mColorArray;
private ViewPager mViewPager;
private CoordinatorTabLayout coordinatorTabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFragments();
initViewPager();
mImageArray = new int[]{R.drawable.index1, R.drawable.index2, R.drawable.index3, R.drawable.index4};
mColorArray = new int[]{R.color.colorRed, R.color.colorOrange, R.color.colorGreen, R.color.colorBlue};
coordinatorTabLayout = findViewById(R.id.coordinatortablayout);
coordinatorTabLayout.setTranslucentStatusBar(this)
.setTitle("HiAHiA")
.setBackEnable(false)
.setImageArray(mImageArray,mColorArray)
.setupWithViewPager(mViewPager);
TabLayout tabLayout = coordinatorTabLayout.getTabLayout();
for (int i = 0; i < titles.length; i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
if (tab != null) {
tab.setCustomView(getTabView(i));
}
}
coordinatorTabLayout.addOnTabSelectedListener(new OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
TextView customView = (TextView) tab.getCustomView();
customView.setTextColor(Color.BLACK);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
TextView customView = (TextView) tab.getCustomView();
customView.setTextColor(Color.WHITE);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
coordinatorTabLayout.getTabLayout().getTabAt(2).select();
}
private void initViewPager() {
mViewPager = findViewById(R.id.vp);
mViewPager.setOffscreenPageLimit(titles.length);
mViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), fragmentList, titles));
}
private void initFragments() {
fragmentList = new ArrayList<>();
for (int i = 0; i < titles.length; i++) {
fragmentList.add(new BlankFragment());
}
}
private View getTabView(int currentPosition) {
TextView textView = new TextView(this);
textView.setText(titles[currentPosition]);
textView.setTextColor(Color.WHITE);
return textView;
}
}
2.MainXml
<?xml version="1.0" encoding="utf-8"?>
<cn.hugeterry.coordinatortablayout.CoordinatorTabLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatortablayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</cn.hugeterry.coordinatortablayout.CoordinatorTabLayout>
3.PagerAdapter
public class MyPagerAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> mFragments ;
private final String[] mTitles;
public MyPagerAdapter(FragmentManager fm, ArrayList<Fragment> mFragments, String[] mTitles) {
super(fm);
this.mFragments = mFragments;
this.mTitles = mTitles;
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles[position];
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
}
4.MyAdapter
public class MyAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
public MyAdapter(int layoutResId, @Nullable List<String> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, String item) {
helper.setText(R.id.tvItem, item);
}
}
5.Fragment
public class BlankFragment extends Fragment {
public BlankFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
RecyclerView recyclerview = inflate.findViewById(R.id.recyclerview);
List<String> list=new ArrayList<>();
for (int i = 0; i < 30; i++) {
list.add(""+i);
}
recyclerview.setLayoutManager(new LinearLayoutManager(getActivity()));
MyAdapter myAdapter = new MyAdapter(R.layout.item, list);
recyclerview.setAdapter(myAdapter);
return inflate;
}
}
6.FragmentXML
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
7.NoActionBar