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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ViewPager循环

發布時間:2023/11/30 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ViewPager循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

android.support.v4.view.ViewPager


ViewPager的使用跟AbsListView,AbsSpinner類似,需要用一個adapter填充數據,同時實現了onPagerChangeListener接口。


ViewPager需要的adapter繼承自android.support.v4.view.PageAdapter,getCount返回adapter的長度,destroyItem滑出屏幕做remove操作,instantiateItem返回填充的視圖對象。


要想讓ViewPager顯示循環的效果網上大多采用給adapter的getCount返回一個很長的數字,然后在返回視圖對象的時候用長度getCount%真實數據集合的長度去求余數,求的的余數就是數據集合中拿出來要給instantiateitem返回的視圖對象。

然后還可以根據這個余數去設置indicator(小圓點索引)的狀態

如圖:


代碼:

初始化一個裝這ImageView的List

List<ImageView> mViewPagerBannerList = new ArrayList<ImageView>(); for (int i = 0; i < 7; i++) {ImageView mImageView = (ImageView) LayoutInflater.from(getActivity()).inflate( R.layout.fragment_market_featured_item0_imageview, null);mViewPagerBannerList.add(mImageView); }

重寫PageAdapter

class MyBannerPageAdapter extends PagerAdapter {List<ImageView> mImageViews;public MyBannerPageAdapter(List<ImageView> mImageViews) {this.mImageViews = mImageViews;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mImageViews.size() * 100;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stubcontainer.removeView(mImageViews.get(position % mImageViews.size()));}@Overridepublic Object instantiateItem(ViewGroup container, final int position) {ImageView mView = mImageViews.get(position % mImageViews.size());ImageLoader loader = new ImageLoader(mQueue,//以下這一部分代碼是Vollay動態給加載圖片的VolleyBitmapCache.getCache());ImageListener imageListener = ImageLoader.getImageListener(mView,0, 0);loader.get(mBannerApps.get(position % mImageViews.size()).getBanner_link(), imageListener);try {container.addView(mImageViews.get(position % mImageViews.size()), 0);} catch (Exception e) {// handler something}return mImageViews.get(position % mImageViews.size());//根據余數返回要填充的ImageView}RequestQueue mQueue = Volley.newRequestQueue(getActivity());}


如果你的ViewPager位于ListView的頭部,你就會發現對內容的單擊事件沒法監聽了,如果監聽了ViewPager的onClickListener之后,ViewPager的滑動會受到影響,我的做法是重寫ViewPager,重寫onTouch事件,在down和up事件上作文章,可見ViewPager嵌套使用的文章:http://blog.csdn.net/u013045971/article/details/41512055

大家有更好的方式的話,可以告訴我一下,謝謝。

?

轉載于:https://www.cnblogs.com/gmm283029/p/4498961.html

總結

以上是生活随笔為你收集整理的ViewPager循环的全部內容,希望文章能夠幫你解決所遇到的問題。

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