日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview

發布時間:2023/12/10 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果

單個item樣式

多個item樣式

橫向item

?

?

?自定義viewpager——可開關切換動畫

public class NoAnimationViewPager extends ViewPager {public NoAnimationViewPager(Context context) {super(context);}public NoAnimationViewPager(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic void setCurrentItem(int item, boolean smoothScroll) {super.setCurrentItem(item, smoothScroll);}@Overridepublic void setCurrentItem(int item) {//去除頁面切換時的滑動翻頁效果super.setCurrentItem(item, true);} }

viewpager的adapter

/*** 作者:created by meixi* 郵箱:1085220040@qq.com* 日期:2020/1/6 15:40*/ public class ViewPagerAdapter extends PagerAdapter {private List<GridView> gridList;public ViewPagerAdapter() {gridList = new ArrayList<>();}public void add(List<GridView> datas) {if (gridList.size() > 0) {gridList.clear();}gridList.addAll(datas);notifyDataSetChanged();}@Overridepublic int getCount() {return gridList.size();}@Overridepublic int getItemPosition(Object object) {return POSITION_NONE;}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(gridList.get(position));return gridList.get(position);}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);} }

?

activity調用即可

private NoAnimationViewPager vp; private ViewPagerAdapter mAdapter; private List<GridView> gridList = new ArrayList<>(); private int WHAT_AUTO_PLAY = 1000; private int autoPlayDuration = 2000;//刷新間隔時間 private int num = 0; private boolean ifauto = true; private List<GongXuEntity> mGongXuEntities = new ArrayList<>(); protected Handler mHandler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(Message msg) {if (msg.what == WHAT_AUTO_PLAY) {Log.e("lgq", "==33==" + ifauto);if (ifauto){num++;if (num==0){vp.setCurrentItem(num,false);}else {vp.setCurrentItem(num,true);}}if (mGongXuEntities.size() - 1 == num) {num = -1;}mHandler.sendEmptyMessageDelayed(WHAT_AUTO_PLAY, autoPlayDuration);}return false;} });

?

mAdapter = new ViewPagerAdapter(); vp.setAdapter(mAdapter); getdata(); showHostsj(); vp.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {ifauto = false;}if (event.getAction() == MotionEvent.ACTION_UP) {ifauto = true;}return false;}}); //圓點指示器mHandler.sendEmptyMessageDelayed(WHAT_AUTO_PLAY, autoPlayDuration);

?

public void getdata() {for (int a = 0; a < 6; a++) {GongXuEntity entity = new GongXuEntity();entity.setCity("城市" + a);if (a % 2 == 0) {entity.setSupplyDemand("0");} else {entity.setSupplyDemand("1");}entity.setContent("領道風味" + a);mGongXuEntities.add(entity);} // mGongXuEntities.add(.......省略);}public void showHostsj() {for (int j = 0; j < mGongXuEntities.size(); j++) {GridView gridView = new GridView(this);HomeGridViewAdapter adapter = new HomeGridViewAdapter(mGongXuEntities, j);gridView.setTag(j);gridView.setNumColumns(1);gridView.setAdapter(adapter);gridList.add(gridView);gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {int index = Integer.parseInt(parent.getTag().toString()) * 1 + position;Log.i("lgq", "ii====" + index);//todo}});}mAdapter.add(gridList);}

?

demo鏈接:https://download.csdn.net/download/meixi_android/12106643

總結

以上是生活随笔為你收集整理的Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。