布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="#f0f"
app:tabSelectedTextColor="#ccc"
app:tabTextColor="#000"
app:tabMode="scrollable"
android:id="@+id/mytab"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp"
android:layout_below="@+id/mytab"></android.support.v4.view.ViewPager>
</RelativeLayout>
怎么使用Tablayout
public class MainActivity extends AppCompatActivity {
//所有的tab标签
private List<String> myTabs=new ArrayList<>();
private DrawerLayout mydrawer;
private RelativeLayout menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView img=findViewById(R.id.img);
mydrawer = findViewById(R.id.mydrawer);
menu = findViewById(R.id.menu);
TabLayout myTab=findViewById(R.id.mytab);
ViewPager viewPager=findViewById(R.id.vp);
myTabs.add("推荐");
myTabs.add("北京");
myTabs.add("社会");
myTabs.add("娱乐");
myTabs.add("科技");
myTabs.add("民生");
myTabs.add("视频");
//创建适配器
viewPager.setAdapter(new MyVpAdapter(getSupportFragmentManager()));
//将TabLayout与viewPager创建关联
myTab.setupWithViewPager(viewPager);
}
class MyVpAdapter extends FragmentPagerAdapter{
public MyVpAdapter(FragmentManager fm) {
super(fm);
}
//返回每个页面的title
@Override
public CharSequence getPageTitle(int position) {
return myTabs.get(position);
}
@Override
public Fragment getItem(int position) {
//position:页面的下标
ContentFragment contentFragment=new ContentFragment();
//传递参数
Bundle bundle=new Bundle();//key:string vavle:object
bundle.putString("title",myTabs.get(position));
contentFragment.setArguments(bundle);
return contentFragment;
}
//返回viewPager的加载的页面的数量
@Override
public int getCount() {
return myTabs.size();
}
}
}