吃水不忘挖井人:
讀了上文感覺思路挺不錯的,但是實踐的時候發現了一些問題。比如,開啟應用時banner並沒有自動開始輪播,因為handler中的if判斷把訊息給吃掉了。
由此,我感覺這種處理方式並不是很好,出現重**訊息的問題,又通過其它方式來刪除掉這些訊息。。。
我對**做了一下修改:
1、刪除掉了以下這兩種訊息的定義,改為在viewpager的***中關閉和重發更新banner的訊息。
/**
* 請求暫停輪播。
*/
protected
static
final
int
msg_keep_silent =
2
;
/**
* 請求恢復輪播。
*/
protected
static
final
int
msg_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 ...