viewpager可以将多个界面放在一起并进行左右滑动
多个页面通过viewpager拼接在一起主要用到了LayoutInflater以及viewpager的四个配置方法:
public class MainActivity extends AppCompatActivity {
//初始化定义viewpager
ViewPager viewPager;
//定义数组List
List<View>viewList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager)findViewById(R.id.viewpager);
{ //通过LayoutInflater来将item中的布局传入MainActivity所依赖的布局activity_main中
View view = LayoutInflater.from(this).inflate(R.layout.item,null);
//将传入的布局添加到数组List中
viewList.add(view);}
{ View view = LayoutInflater.from(this).inflate(R.layout.item2,null);
viewList.add(view);}
{ View view = LayoutInflater.from(this).inflate(R.layout.item3,null);
viewList.add(view);}
//配置viewPager的adapter,重写四个方法
viewPager.setAdapter(new PagerAdapter() {
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(viewList.get(position));
}
});
}
}