ViewPager
创建ViewPager和相关布局
布局自己写
main方法中:
vp = (ViewPager) findViewById(R.id.vp);
List<String> list=new ArrayList<>();
for (int i = 1; i <5 ; i++) {
list.add("第"+i+"个");
}
myadapter myadapter = new myadapter(list, this);
vp.setAdapter(myadapter);
适配器:
private List<String> list;
private Context context;
public myadapter(List<String> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//super.destroyItem(container, position, object);必须注掉
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View inflate = LayoutInflater.from(context).inflate(R.layout.vp_layout, null);
TextView textView = inflate.findViewById(R.id.vp_text);
textView.setText(list.get(position));
container.addView(inflate);
return inflate;
}
ViewPager与Fragment结合使用 ( 重 点 )
vp = (ViewPager) findViewById(R.id.vp);
final List<Fragment> list=new ArrayList<>();
list.add(new oneFragment());
list.add(new twoFragment());
list.add(new threeFragment());
myfradapter myfradapter = new myfradapter(getSupportFragmentManager(), list);
vp.setAdapter(myfradapter);
//计时器 每2秒换一页
Timer timer = new Timer();
timer.schedule(new TimerTask() {
int index=0;
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//当前打开的页面
vp.setCurrentItem(index);
}
});
index++;
if (index>=list.size()){
index=0;
}
}
},0,2000);