Android App中使用ViewPager實(shí)現(xiàn)滑動(dòng)分頁的要點(diǎn)解析
以前如果要做 Tab 分頁的話,必須要用一個(gè)很難用的 TabActivity,而且做出來的效果很差,彈性也很小
忘了從什么時(shí)候開始,Google release 了 ViewPager 這好東西取代了以前難用的 Gallery 元件,加上從 Honeycomb 導(dǎo)入的 Fragment 之后終于能夠簡單做出好看又好用的 Layout 了!
這里我們采用PagerTabStrip ,做出來的效果如下
特色就是使用簡單,出來的效果則是目前顯示的分頁 Tab 的文字會(huì)自動(dòng)置中,然后分別在左右顯示上一個(gè)/下一個(gè) Tab。
并且在滑動(dòng) Tab 的時(shí)候,下面的分頁會(huì)自動(dòng)跟著切換。
實(shí)作方式如下:
your_layout.xml
... <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v4.view.PagerTabStrip android:id="@+id/pagetTab" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top"/> </android.support.v4.view.ViewPager>
...
首先在你的 Layout file 里面,找到你放置 ViewPager 的地方,里面插入這個(gè) PagerTabStrip ,其中android:layout_gravity 的地方可以指定 top 或是 bottom 看你要讓他在 ViewPager 的上面或是下面。
接著在 Java code 的部份。
MainActivity.java
... PagerTabStrip tabStrip = (PagerTabStrip) findViewById(R.id.pagetTab); tabStrip.setDrawFullUnderline(true); tabStrip.setTabIndicatorColorResource(android.R.color.holo_blue_dark); tabStrip.setBackgroundColor(Color.WHITE); ...
基本上就是把指示條的部份開啟,然后設(shè)定背景還有指示條的顏色。
這樣就完成了!
禁止ViewPager的左右滑動(dòng)
如果要禁止滑動(dòng),就是重寫ViewPager的 onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,這兩個(gè)方法的返回值都是boolean類型的,只需要將返回值改為false,那么ViewPager就不會(huì)消耗掉手指滑動(dòng)的事件了,轉(zhuǎn)而傳遞給上層View去處理或者該事件就直接終止了。
public class MyViewPager extends ViewPager { // private static final String TAG = "ViewPager"; //是否禁止左右滑動(dòng) private boolean disableScroll=false; public MyViewPager(Context context) { super(context); } public MyViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { // LogHelper.i(TAG, "MyViewPager dispatchTouchEvent, "); if (getParent() != null) { getParent().requestDisallowInterceptTouchEvent(true); } return super.dispatchTouchEvent(ev); } @Override public boolean onInterceptTouchEvent(MotionEvent arg0) { if(disableScroll){ return false; } return super.onInterceptTouchEvent(arg0); } @Override public boolean onTouchEvent(MotionEvent arg0) { if (disableScroll) return false; else return super.onTouchEvent(arg0); } public boolean isDisableScroll() { return disableScroll; } public void setDisableScroll(boolean disableScroll) { this.disableScroll = disableScroll; } }
- android使用ViewPager組件實(shí)現(xiàn)app引導(dǎo)查看頁面
- Android用webView包裝WebAPP方法
- Android APP之WebView校驗(yàn)SSL證書的方法
- Android中TabLayout+ViewPager 簡單實(shí)現(xiàn)app底部Tab導(dǎo)航欄
- 詳解Android中ListView實(shí)現(xiàn)圖文并列并且自定義分割線(完善仿微信APP)
- Android App使用RecyclerView實(shí)現(xiàn)上拉和下拉刷新的方法
- Android App開發(fā)中使用RecyclerView替代ListView的實(shí)踐
- Android App中ViewPager所帶來的滑動(dòng)沖突問題解決方法
- Android自定義View app更新動(dòng)畫詳解
相關(guān)文章
android端使用openCV實(shí)現(xiàn)車牌檢測
這篇文章主要為大家詳細(xì)介紹了android端使用openCV實(shí)現(xiàn)車牌檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Android入門教程之ListView的應(yīng)用示例
這篇文章主要介紹了Android入門教程之ListView的應(yīng)用,結(jié)合簡單實(shí)例形式分析了Android中l(wèi)istview的簡單創(chuàng)建與使用步驟,需要的朋友可以參考下2016-10-10Android自定義View實(shí)現(xiàn)加載進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)加載進(jìn)度條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android 中 viewpager 滑動(dòng)指示器的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了android 中 viewpager 滑動(dòng)指示器,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12android實(shí)現(xiàn)滑動(dòng)標(biāo)簽頁效果的代碼解析
這篇文章主要介紹了android實(shí)現(xiàn)滑動(dòng)標(biāo)簽頁效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04如何正確實(shí)現(xiàn)Android啟動(dòng)屏畫面的方法(避免白屏)
本篇文章主要介紹了如何正確實(shí)現(xiàn)Android啟動(dòng)屏畫面的方法(避免白屏),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02Android audio音頻流數(shù)據(jù)異常問題解決分析
這篇文章主要為大家介紹了Android audio音頻流數(shù)據(jù)異常問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Android動(dòng)態(tài)添加設(shè)置布局與控件的方法
這篇文章主要介紹了Android動(dòng)態(tài)添加設(shè)置布局與控件的方法,涉及Android中布局與控件的相關(guān)操作技巧,需要的朋友可以參考下2016-01-01