五、TabLayout 和viewpager联动及实现的代码

1.布局


<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width=“0dp”
android:layout_height=“wrap_content”
app:tabMode=“scrollable”
android:layout_weight=“1”
/>


<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width=“match_parent”
android:layout_height=“0px”
android:layout_weight=“1”
android:background="@android:color/white"
></android.support.v4.view.ViewPager>

1.代码实现如下
public class Fragment01 extends BaseFragment {
private ArrayList fragmentlist;
private TabLayout tabLayout;
private ViewPager pager;
private ArrayList userchannelist=new ArrayList();
private MyTabAdapter myTabAdapter;
@Override
protected int bindLayout() {
return R.layout.frag01;
}
@Override
protected void initView() {
tabLayout = bindView(R.id.tablayout);
pager = bindView(R.id.viewpager);
}
@Override
protected void initData() {
userchannelist=DBUtil.getTabData(getActivity());
fragmentlist = new ArrayList();
for (int i=0;i<userchannelist.size();i++){
ChannelItem channelBean=(ChannelItem) userchannelist.get(i);
String tabName=channelBean.getName();
fragmentlist.add(new Frag1());

    }
    myTabAdapter = new MyTabAdapter(getActivity().getSupportFragmentManager(),fragmentlist,userchannelist);
    pager.setAdapter(myTabAdapter);
    //绑定
    tabLayout.setupWithViewPager(pager);
}
@Override
protected void bindEvent() {
    bindView(R.id.tabMenu).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(getActivity(),ChannelActivity.class);
            startActivityForResult(intent,0);
        }
    });
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode==0){
        userchannelist=DBUtil.getTabData(getActivity());
        for (int i=0;i<userchannelist.size();i++){
            ChannelItem channelBean=(ChannelItem) userchannelist.get(i);
            String tabName=channelBean.getName();
            tabLayout.addTab(tabLayout.newTab().setText(tabName));
            fragmentlist.add(new Frag1());
        }
        myTabAdapter = new MyTabAdapter(getActivity().getSupportFragmentManager(),fragmentlist,userchannelist);
        pager.setAdapter(myTabAdapter);
        tabLayout.setupWithViewPager(pager);
    }
}

}

猜你喜欢

转载自blog.csdn.net/weixin_44258714/article/details/86507708