1.在布局中先书写tablayout的布局,以及与之相对应的viewpager
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/host_tab" app:tabIndicatorColor="#ff00" app:tabIndicatorHeight="3dp" app:tabSelectedTextColor="#ff00" android:layout_marginRight="40dp" app:tabTextColor="#000" android:layout_height="48dp"> </android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/host_viewpager" ></android.support.v4.view.ViewPager>
2.在代码中书写以下代码
先找到控件的方法
tab = (TabLayout) view.findViewById(R.id.host_tab); vp = (ViewPager) view.findViewById(R.id.host_viewpager);
以及设置tablayout的属性因为他继承的scrollview
tab.setTabMode(TabLayout.MODE_SCROLLABLE);
给tablayout设置的title封装到集合中判断集合的数量来生成与之相对应的framgent
for (int i=0;i<list.size();i++){ Fragment fragment=new Tab_fragment(); //动态生成fragment的同时可以传递相传递的数据 Bundle bundle=new Bundle(); bundle.putString("url",url.get(i)); fragment.setArguments(bundle); //在把fragment添加进集合中 flist.add(fragment); } //viewpager的适配器vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return flist.get(position); } @Override public int getCount() { return flist.size(); } //重写下面这个方法来使fragment和tablayout的title相关联 @Override public CharSequence getPageTitle(int position) { return list.get(position); } }); 把viewpager设置到tablayout上 tab.setupWithViewPager(vp);
在Fragment中使用 接收值
Bundle bundle= getArguments(); url=bundle.getString("url");