activity_main布局:
注:在使用AppBarLayout控件时需要导design包
implementation'com.android.support:design:27.+'
MainActivity中:
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private CollapsingToolbarLayout toolbar_layout;
private TabLayout tabLayout;
private AppBarLayout app_bar;
private NestedScrollView nestedScrollView;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//设置返回主页的按钮
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar_layout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
app_bar = (AppBarLayout) findViewById(R.id.app_bar);
nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
viewPager = findViewById(R.id.viewPager);
nestedScrollView.setFillViewport(true);
ResumeAdapter rusumeAdapter = new ResumeAdapter(getSupportFragmentManager());
viewPager.setAdapter(rusumeAdapter);
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
nestedScrollView.scrollTo(0,0);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}
适配器:
public class ResumeAdapter extends FragmentPagerAdapter{
public ResumeAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
if (0 == position) {
fragment = new AFragment();
} else if (1 == position) {
fragment = new BFragment();
} else if (2 == position) {
fragment = new CFragment();
} else if (3 == position) {
fragment = new DFragment();
}
return fragment;
}
@Override
public int getCount() {
return 4;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "头条";
case 1:
return "热点";
case 2:
return "娱乐";
case 3:
return "体育";
}
return null;
}
}