package com.example.wtz.viewpagerdemo;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.DragEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<TextView> mTextViews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
initData();
viewPager.setAdapter(new PagerAdapter() {
@Override
public int getCount() {
return mTextViews.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
TextView textView = mTextViews.get((int)object);
return view == textView;
}
//去创建一个View,返回出去,当前ViewPager中就会去展示这个View了,这个View会被添加到ViewPager中
//position代表这个View要加到哪个位置去显示
//container代表就是当前的ViewPager
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
TextView textView = mTextViews.get(position);
container.addView(textView);
//不要求一定是View
return position;
}
//有添加就有删除,不然ViewPager的效率不行,这里负责移除一些不展示的View
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
// super.destroyItem(container, position, object);
TextView textView = mTextViews.get((int)object);
container.removeView(textView);
}
});
}
private void initData() {
mTextViews = new ArrayList<>();
for (int i = 0; i < 10; i++) {
TextView textView = new TextView(getApplicationContext());
textView.setTextColor(Color.RED);
textView.setText("第" + i + "个View");
textView.setTextSize(24);
mTextViews.add(textView);
}
}
}
