截止本文发布时间止,viewpager2的最新版本为稳定版1.0.0,该版本与 1.0.0-rc01 相比没有变化。
简介
1.0.0 的主要功能
使用
要使用 ViewPager2,请将以下 AndroidX 依赖项添加到项目的 build.gradle 文件:
dependencies {
implementation "androidx.viewpager2:viewpager2:1.0.0"
}
ViewPager2为androidx库中的,简单来说androidx库就是对之前android-support的整合,如果项目还在使用android-support库,那么只有两个选择:
言归正传,我们继续
先创建一个fragment的布局文件就命名为fragment_screen_slide_page.xml(引用的字符串内容需要你自己去定义):
创建一个Fragment类,在onCreateView中返回刚刚创建的布局
import androidx.fragment.app.Fragment;
...
public class ScreenSlidePageFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.fragment_screen_slide_page, container, false);
return rootView;
}
}
然后创建一个ViewPager2对应的布局,命名为activity_screen_slide.xml
创建一个适配器,命名为ScreenSlidePagerAdapter,继承FragmentStateAdapter
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.channel.myapplication.fragment.ScreenSlidePageFragment;
/**
* @author Administrator
*/
public class ScreenSlidePagerAdapter extends FragmentStateAdapter {
/**
* The number of pages (wizard steps) to show in this demo.
*/
private static final int NUM_PAGES = 5;
public ScreenSlidePagerAdapter(FragmentActivity fa) {
super(fa);
}
@NonNull
@Override
public Fragment createFragment(int position) {
return new ScreenSlidePageFragment();
}
@Override
public int getItemCount() {
return NUM_PAGES;
}
}
创建activity命名为ScreenSlidePagerActivity,并在此activity中将ScreenSlidePagerAdapter与ViewPager2绑定
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
...
public class ScreenSlidePagerActivity extends FragmentActivity {
/**
* The pager widget, which handles animation and allows swiping horizontally to access previous
* and next wizard steps.
*/
private ViewPager2 mPager;
/**
* The pager adapter, which provides the pages to the view pager widget.
*/
private FragmentStateAdapter pagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_slide);
// Instantiate a ViewPager and a PagerAdapter.
mPager = findViewById(R.id.pager);
pagerAdapter = new ScreenSlidePagerAdapter(this);
mPager.setAdapter(pagerAdapter);
}
@Override
public void onBackPressed() {
if (mPager.getCurrentItem() == 0) {
// If the user is currently looking at the first step, allow the system to handle the
// Back button. This calls finish() on this activity and pops the back stack.
super.onBackPressed();
} else {
// Otherwise, select the previous step.
mPager.setCurrentItem(mPager.getCurrentItem() - 1);
}
}
}
运行项目进入ScreenSlidePagerActivity即可看到效果
推荐阅读:
ViewPager2添加自定义动画
关注我的公众号(不是技术号),让你的职业发展除技术外,多一种可能