1.使用ViewPager静态绑定xml
//1.获取控件
vp = (ViewPager) findViewById(R.id.vp);
//2.创建数据源(静态布局:模拟开机引导页面)
list = new ArrayList<View>();
View view1 = LayoutInflater.from(this).inflate(R.layout.layout_item1, null);
View view2 = LayoutInflater.from(this).inflate(R.layout.layout_item2, null);
View view3 = LayoutInflater.from(this).inflate(R.layout.layout_item3, null);
list.add(view1);
list.add(view2);
list.add(view3);
//3.设置适配器
adapter = new MyAdapter(this,list);
vp.setAdapter(adapter);
//设置默认选中位置
vp.setCurrentItem(list.size()-1);
//设置滑动监听事件
vp.addOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int i, float v, int i1) {
//滑动位置
}
@Override
public void onPageSelected(int i) {
//当前显示位置
Toast.makeText(this,"显示"+i+"页面",Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(int i) {
//滑动状态
- 适配器
public class MyAdapter extends PagerAdapter {
private Context context;
private ArrayList<View> list;
public MyAdapter(Context context, ArrayList<View> list) {
this.context = context;
this.list = list;
}
//返回长度
@Override
public int getCount() {
return list.size();
}
//判断视图
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
//初始化视图
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
//将对应view添加到容器中
container.addView(list.get(position));
//返回集合对应的View对象
return list.get(position);
}
//销毁视图
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//容器中移除视图View
container.removeView(list.get(position));
}
//绑定tablayout
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return title.get(position);
}
3.使用ViewPager绑定动态xml(viewpager的轮播图)
public class Main2Activity extends AppCompatActivity {
private ViewPager vp;
private int a=1;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==1){
if(a>0){
++a;
vp.setCurrentItem(a);
Logger.logD("aaa",a+"");
handler.sendEmptyMessageDelayed(1,2000);
}
}
}
};
private ViewPagerAdapter viewPagerAdapter;
private ArrayList<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
}
private void initView() {
vp = (ViewPager) findViewById(R.id.vp);
list = new ArrayList<>();
list.add("https://ws1.sinaimg.cn/large/0065oQSqly1g0ajj4h6ndj30sg11xdmj.jpg");
list.add("https://ws1.sinaimg.cn/large/0065oQSqly1g04lsmmadlj31221vowz7.jpg");
// handler.sendEmptyMessageDelayed(1, 1000);
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(this,list);
vp.setAdapter(viewPagerAdapter);
handler.sendEmptyMessageDelayed(1,2000);
}
}
适配器
public class ViewPagerAdapter extends PagerAdapter {
private final Context context;
private final ArrayList<String> list;
public ViewPagerAdapter(Context context, ArrayList<String> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View inflate1 = LayoutInflater.from(context).inflate(R.layout.layout, null);
ImageView img = inflate1.findViewById(R.id.img);
container.addView(inflate1);
Glide.with(context).load(R.mipmap.ic_launcher).into(img);
return container.getChildAt();
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//super.destroyItem(container, position, object);
}
}
ViewPager的加载图片(可滑动),通过对fragment的复用加载多张图片
public class BlankFragment2 extends Fragment {
private ViewPager vp;
public BlankFragment2() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_blank_fragment2, container, false);
initView(inflate);
return inflate;
}
private void initView(View inflate) {
vp = (ViewPager) inflate.findViewById(R.id.vp);
ArrayList<bean.ResultsBean> mList = MyAdapter.mList;
ArrayList<Fragment> list = new ArrayList<>();
for (int i = 0; i < mList.size(); i++) {
String url = mList.get(i).getUrl();
list.add(new BlankFragment(url, i, mList.size()));
}
Adapter adapter = new Adapter(getChildFragmentManager(), list);
vp.setAdapter(adapter);
}
}
这是通过复用fragment吧图片地址,发送到另fragment中
@SuppressLint("ValidFragment")
public class BlankFragment extends Fragment {
private String Murl;
private int a;
private int c;
private View view;
private ImageView mImg1;
/**
* 1
*/
private TextView mXian;
/**
* 1
*/
private TextView mZong;
@SuppressLint("ValidFragment")
public BlankFragment(String url, int i,int b) {
// Required empty public constructor
Murl=url;
a=i;
c=b;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
initView(inflate);
return inflate;
}
private void initView(View inflate) {
mImg1 = (ImageView) inflate.findViewById(R.id.img1);
mXian = (TextView) inflate.findViewById(R.id.xian);
mZong = (TextView) inflate.findViewById(R.id.zong);
Glide.with(getContext()).load(Murl).into(mImg1);
mXian.setText(a+"");
mZong.setText(c+"");
}
}
收到图片地址进行加载
网友评论