实现TabLayout+ViewPager+Fragment头目的联动模式
2017-10-25 20:40
453 查看
//添加依赖
compile 'com.android.support:design:24.1.1'
//这个依赖可以直接在系统找
//首先布局 应该能看懂吧
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bwie.gouzeng.Main2Activity">
<android.support.design.widget.TabLayout
android:id="@+id/tablelayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
</LinearLayout>
//Activity
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
import static bwie.gouzeng.R.id.tablelayout;
public class Main2Activity extends AppCompatActivity {
private String[] title = new String[]{"最新日报","专栏","热门","主题日报"};
private TabLayout tabLayout;
private ViewPager viewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tabLayout = (TabLayout) findViewById(tablelayout);
viewpager = (ViewPager) findViewById(R.id.viewpager);
for (String str : title){
tabLayout.addTab(tabLayout.newTab().setText(str));
}
List<Fragment> fragments=new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());
fragments.add(new Fragment4());
MyAdapter adapter=new MyAdapter(getSupportFragmentManager(),title,fragments);
//把集合放入适配器
adapter.setFragments(fragments);
//给ViewPager设置适配器
viewpager.setAdapter(adapter);
for (int i = 0; i <fragments.size();i++){
tabLayout.addTab(tabLayout.newTab());
}
//使tablayout和viewPager关联
tabLayout.setupWithViewPager(viewpager);
tabLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
//适配器
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
public class MyAdapter extends FragmentPagerAdapter {
private String[] title;
private List<Fragment> fragments;
public MyAdapter(FragmentManager fm, String[] title, List<Fragment> fragments) {
super(fm);
this.title = title;
this.fragments = fragments;
}
public void setFragments(List<Fragment> fragments) {
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return title[position];
}
}
compile 'com.android.support:design:24.1.1'
//这个依赖可以直接在系统找
//首先布局 应该能看懂吧
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bwie.gouzeng.Main2Activity">
<android.support.design.widget.TabLayout
android:id="@+id/tablelayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
</LinearLayout>
//Activity
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
import static bwie.gouzeng.R.id.tablelayout;
public class Main2Activity extends AppCompatActivity {
private String[] title = new String[]{"最新日报","专栏","热门","主题日报"};
private TabLayout tabLayout;
private ViewPager viewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tabLayout = (TabLayout) findViewById(tablelayout);
viewpager = (ViewPager) findViewById(R.id.viewpager);
for (String str : title){
tabLayout.addTab(tabLayout.newTab().setText(str));
}
List<Fragment> fragments=new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());
fragments.add(new Fragment4());
MyAdapter adapter=new MyAdapter(getSupportFragmentManager(),title,fragments);
//把集合放入适配器
adapter.setFragments(fragments);
//给ViewPager设置适配器
viewpager.setAdapter(adapter);
for (int i = 0; i <fragments.size();i++){
tabLayout.addTab(tabLayout.newTab());
}
//使tablayout和viewPager关联
tabLayout.setupWithViewPager(viewpager);
tabLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
//适配器
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
public class MyAdapter extends FragmentPagerAdapter {
private String[] title;
private List<Fragment> fragments;
public MyAdapter(FragmentManager fm, String[] title, List<Fragment> fragments) {
super(fm);
this.title = title;
this.fragments = fragments;
}
public void setFragments(List<Fragment> fragments) {
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return title[position];
}
}
相关文章推荐
- TabLayout实现标题栏viewpager与Fragment联动,标题栏下面有指示器(小横线)
- TabLayout 和ViewPager和Fragment的多页面滑动(主要实现一个水平的布局用来展示Tabs加上ViewPager实现联动效果)
- TabLayout,ViewPager,Fragment,实现联动
- 4.8.3 在 一个 Fragment 里面实现ViewPager 和TabLayout 进行联动
- Android之TabLayout+ViewPager+Fragment实现标题栏与页面联动
- Tablayout+Viewpager+fragment实现联动效果
- ViewPager+Tablayout实现页面标题联动效果
- 利用TabLayout+ViewPager+Fragment实现可滚动的Tab页面
- TabLayout、ViewPager、fragment实现可滑动的顶部菜单
- TabLayout+View Pager+Fragment 实现页面左右滑动切换
- 自学android笔记之TabLayout结合ViewPager和Fragment实现多页面滑动
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- Tablayout+Viewpager+Fragment实现滑动Tab及cannot convert from Fragment1 to Fragment之解决
- 手把手教你TabLayout、ViewPager、Fragment实现顶部导航
- TabLayout和ViewPager的联动效果实现
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- TabLayout和ViewPager实现联动效果以及Pulltorefresh
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- Fragment嵌套Fragment, TabLayout + ViewPager实现页面切换滑动