//注意导依赖
implementation 'com.android.support:design:28.0.0'
//TabLayout
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:tabGravity="fill"
app:tabIndicatorColor="#f00"
app:tabMode="scrollable"
app:tabSelectedTextColor="#00ff04"
app:tabTextColor="#0066ff"></android.support.design.widget.TabLayout>
//设置Activity
public class Frag1 extends BaseFragment {
private TabLayout tab;
private ViewPager pager_tab;
private ArrayList<Fragment> list_frag;
private ArrayList<ChannelItem> tabData;
private MyTabPagerAdapter adapter_tab;
private ImageView btn;
@Override
public int bindLayout() {
return R.layout.frag1;
}
@Override
protected void initView() {
tab = getActivity().findViewById(R.id.tab);
pager_tab = getActivity().findViewById(R.id.pager_tab);
btn = getActivity().findViewById(R.id.btn);
}
@Override
protected void initData() {
//得到数据库
tabData = DBUtil.getTabData(getActivity());
list_frag = new ArrayList<>();
for (int i=0;i<tabData.size();i++){
ChannelItem channelItem = tabData.get(i);
String name = channelItem.getName();switch (name){
case "头条":
list_frag.add(new Frag1_tab());
break;
default:
list_frag.add(new Frag2_tab());
break;
}
}
//设置适配器
adapter_tab = new MyTabPagerAdapter(getActivity()
.getSupportFragmentManager(),list_frag,tabData);
pager_tab.setAdapter(adapter_tab);
//tablayout与viewpager联动
tab.setupWithViewPager(pager_tab);
}
@Override
protected void bindEvent() {
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(new Intent(getActivity(),ChannelActivity.class),0);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==0){
tabData = DBUtil.getTabData(getActivity());
for (int i=0;i<tabData.size();i++){
ChannelItem channelItem1 = tabData.get(i);
String name = channelItem1.getName();
//把数据添加到tab中
tab.addTab(tab.newTab().setText(name));
//设置fragment(可以根据名字创建Fragment)
switch (name){
case "头条":
list_frag.add(new Frag1_tab());
break;
default:
list_frag.add(new Frag2_tab());
break;
}
//设置适配器
adapter_tab = new MyTabPagerAdapter(getActivity()
.getSupportFragmentManager(),list_frag,tabData);
pager_tab.setAdapter(adapter_tab);
//tablayout与viewpager联动
tab.setupWithViewPager(pager_tab);
}
}
}
}