Activity
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layoutRID());
initView();
initData();
}
protected abstract int layoutRID();
protected abstract void initView();
protected abstract void initData();
}
MainActivity
//继承
public class MainActivity extends BaseActivity {
private ViewPager pager;
private RadioGroup group;
private ArrayList<Fragment> list;
//布局
@Override
protected int layoutRID() {
return R.layout.activity_main;
}
//找控件
@Override
protected void initView() {
pager = findViewById(R.id.pager);
group = findViewById(R.id.group);
}
//操作
@Override
protected void initData() {
group.check(group.getChildAt(0).getId());
list = new ArrayList<>();
list.add(new Frag_01());
list.add(new Frag_02());
list.add(new Frag_03());
list.add(new Frag_04());
list.add(new Frag_05());
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
group.check(group.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.button1:
pager.setCurrentItem(0);
break;
case R.id.button2:
pager.setCurrentItem(1);
break;
case R.id.button3:
pager.setCurrentItem(2);
break;
case R.id.button4:
pager.setCurrentItem(3);
break;
case R.id.button5:
pager.setCurrentItem(4);
break;
}
}
});
}
}
Fragment
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), layoutRID(), null);
initView(view);
initData();
return view;
}
protected abstract int layoutRID();
protected abstract void initView(View view);
protected abstract void initData();
}
Frag
//继承
public class Frag_01 extends BaseFragment {
private TabLayout tab;
private ViewPager pager1;
private ArrayList<String> tabs = new ArrayList<>();
private ArrayList<Fragment> frag = new ArrayList<>();
@Override
//布局
protected int layoutRID() {
return R.layout.frag_01;
}
//找控件
@Override
protected void initView(View view) {
tab = view.findViewById(R.id.tab);
pager1 = view.findViewById(R.id.pager1);
}
//操作
@Override
protected void initData() {
tabs.add("动态");
tabs.add("热门");
tabs.add("发现");
tab.addTab(tab.newTab().setTag(tabs.get(0)));
tab.addTab(tab.newTab().setTag(tabs.get(1)));
tab.addTab(tab.newTab().setTag(tabs.get(2)));
frag.add(new Frag_06());
frag.add(new Frag_07());
frag.add(new Frag_08());
tab.setTabMode(TabLayout.MODE_SCROLLABLE);
MyViewPagerAdapter adapter = new MyViewPagerAdapter(getActivity().getSupportFragmentManager(), frag, tabs);
pager1.setAdapter(adapter);
tab.setupWithViewPager(pager1);
}
}