package cn.sinata.xldutils.activitys;
|
|
import android.os.Bundle;
|
|
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
import androidx.viewpager.widget.ViewPager;
|
|
import com.google.android.material.tabs.TabLayout;
|
|
import cn.sinata.xldutils.R;
|
|
public abstract class TabLayoutActivity extends TitleActivity {
|
|
private ViewPager mViewPager;
|
private TabLayout mTabLayout;
|
protected abstract Fragment getFragment(int position);
|
protected abstract String[] getTitles();
|
private String[] titles ;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.base_activity_tab_layout);
|
initView();
|
}
|
|
protected void initView() {
|
|
mViewPager = bind(R.id.mViewPager);
|
mTabLayout = bind(R.id.mTabLayout);
|
|
titles = getTitles();
|
if (titles!=null && titles.length>0){
|
mViewPager.setAdapter(pagerAdapter);
|
mTabLayout.setupWithViewPager(mViewPager);
|
mViewPager.setOffscreenPageLimit(Math.min(3,titles.length));
|
}
|
}
|
|
private FragmentStatePagerAdapter pagerAdapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) {
|
|
@Override
|
public Fragment getItem(int position) {
|
return getFragment(position);
|
}
|
|
@Override
|
public int getCount() {
|
return titles.length;
|
}
|
|
@Override
|
public CharSequence getPageTitle(int position) {
|
return titles[position];
|
}
|
};
|
|
protected void setTabMode(int tabMode){
|
mTabLayout.setTabMode(tabMode);
|
}
|
|
public void resetTitles(){
|
|
}
|
|
}
|