使用ViewPager實現左右迴圈滑動及輪播效果

2021-07-13 14:53:47 字數 2574 閱讀 2544

吃水不忘挖井人:

讀了上文感覺思路挺不錯的,但是實踐的時候發現了一些問題。比如,開啟應用時banner並沒有自動開始輪播,因為handler中的if判斷把訊息給吃掉了。

由此,我感覺這種處理方式並不是很好,出現重**訊息的問題,又通過其它方式來刪除掉這些訊息。。。

我對**做了一下修改:

1、刪除掉了以下這兩種訊息的定義,改為在viewpager的***中關閉和重發更新banner的訊息。

/**

* 請求暫停輪播。

*/

protectedstaticfinalintmsg_keep_silent   =2;

/**

* 請求恢復輪播。

*/

protectedstaticfinalintmsg_break_silent  =3;

2、 為了防止使用者手指長時間停留在banner上,出現的輪動bug。增加了乙個flag。

修改後的各部分原始碼如下:

1、pageradapter

public class imageadapter extends pageradapter 

@override

public int

getcount()

@override

public boolean

isviewfromobject(view arg0, object arg1)

@override

public void

destroyitem(viewgroup container, int position,

object object)

@override

public object instantiateitem(viewgroup container, int position)

imageview view = viewlist.get(position);

//如果view已經在之前新增到了乙個父元件,則必須先remove,否則會丟擲illegalstateexception。

viewparent vp =view.getparent();

if (vp!=null)

container.addview(view);

//add listeners here if necessary

return view;

}}

2、imagehandler

public class imagehandler extends handler 

@override

public void

handlemessage(message msg)

switch (msg.what)

}}

3、主activity中使用viewpager的**

public class mainactivity extends activity 

@override

public void

onpagescrolled(int arg0, float arg1, int arg2)

//覆寫該方法實現輪播效果的暫停和恢復

@override

public void

onpagescrollstatechanged(int arg0)

break;

case viewpager.scroll_state_idle

: if (flag)

break;

default:

break;

} }

});viewpager.setcurrentitem(integer.max_value

/2);

//預設在中間,使使用者看不到邊界

//開始輪播效果

handler.sendemptymessagedelayed(imagehandler.msg_update_image

, imagehandler.msg_delay

);}//end of oncreate

}//end of mainactivity

至於activity的布局檔案以及r.layout.item,就不列出來了。

activity中是個viewpager

item中是個imageview

ViewPager實現左右滑動2014 08 31

實現步驟 1 布局檔案新增 android.support.v4.view.viewpager確定區域 2 建立viewpager mviewpager物件 mviewpager viewpager findviewbyid r.id.main viewpager 3 建立hashmapmap容器 ...

禁止ViewPager左右滑動

有時候我們需要禁止掉viewpager的左右滑動,怎麼做呢,一般是自定viewpager。然後覆蓋viewpager的onintercepttouchevent motionevent arg0 方法和ontouchevent motionevent arg0 方法,這兩個方法的返回值都是boole...

使用ViewPager實現簡單滑頁

使用viewpager可以實現簡單的滑動頁面,而我寫的是基於鴻洋大神的講解,而寫作的目的只是給給自己的總結。首先,在這裡需要的準備知識就是viewpager,簡單的介紹一下,viewpager其實是類似於listview 個人見解,不喜勿噴 也是配合adapter來使用的。madapter new ...