1,导入依赖
implementation 'com.android.support:design:28.0.0'2,
2,布局Actiivty_main.xml
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scrollable">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v4.view.ViewPager>
- /**TabLayout 是什么东西 案例参考今日头条和腾讯新闻
- 新控件 导入依赖
*/
public class MainActivity extends AppCompatActivity {
private TabLayout Tab_Layout;
private ViewPager View_Page;
private ArrayList<Fragment> mList = new ArrayList<>();
private ArrayList<String> mTitle = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initData(){
mList.add(new AFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mList.add(new BFragment());
mTitle.add("新闻");
mTitle.add("娱乐);
mTitle.add("军事");
mTitle.add(科技");
mTitle.add("时尚");
mTitle.add("游戏");
mTitle.add("美妆");
mTitle.add("杂志");
mTitle.add("购物");
}
private void initView() {
Tab_Layout = findViewById(R.id.Tab_Layout);
View_Page = findViewById(R.id.View_Page);
View_Page.setAdapter(new MyFragmentAdapter(getSupportFragmentManager(),mList,mTitle));
Tab_Layout.setupWithViewPager(View_Page);
}
}
3,适配器继承FragmentPagerAdapter
package com.example.tablayout_day10.adapter;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class MyFragmentAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> mList;
private ArrayList<String> mTitle;
public MyFragmentAdapter(FragmentManager fm, ArrayList<Fragment> list, ArrayList<String> title) {
super(fm);
this.mTitle = title;
this.mList = list;
}
@Override
public Fragment getItem(int i) {
return mList.get(i);
}
@Override
public int getCount() {
return mList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mTitle.get(position);
}
}