Android App中使用ViewPager實現(xiàn)滑動分頁的要點解析
以前如果要做 Tab 分頁的話,必須要用一個很難用的 TabActivity,而且做出來的效果很差,彈性也很小

忘了從什么時候開始,Google release 了 ViewPager 這好東西取代了以前難用的 Gallery 元件,加上從 Honeycomb 導(dǎo)入的 Fragment 之后終于能夠簡單做出好看又好用的 Layout 了!
這里我們采用PagerTabStrip ,做出來的效果如下

特色就是使用簡單,出來的效果則是目前顯示的分頁 Tab 的文字會自動置中,然后分別在左右顯示上一個/下一個 Tab。
并且在滑動 Tab 的時候,下面的分頁會自動跟著切換。
實作方式如下:
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 的地方,里面插入這個 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的左右滑動
如果要禁止滑動,就是重寫ViewPager的 onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,這兩個方法的返回值都是boolean類型的,只需要將返回值改為false,那么ViewPager就不會消耗掉手指滑動的事件了,轉(zhuǎn)而傳遞給上層View去處理或者該事件就直接終止了。
public class MyViewPager extends ViewPager {
// private static final String TAG = "ViewPager";
//是否禁止左右滑動
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組件實現(xiàn)app引導(dǎo)查看頁面
- Android用webView包裝WebAPP方法
- Android APP之WebView校驗SSL證書的方法
- Android中TabLayout+ViewPager 簡單實現(xiàn)app底部Tab導(dǎo)航欄
- 詳解Android中ListView實現(xiàn)圖文并列并且自定義分割線(完善仿微信APP)
- Android App使用RecyclerView實現(xiàn)上拉和下拉刷新的方法
- Android App開發(fā)中使用RecyclerView替代ListView的實踐
- Android App中ViewPager所帶來的滑動沖突問題解決方法
- Android自定義View app更新動畫詳解
相關(guān)文章
Android入門教程之ListView的應(yīng)用示例
這篇文章主要介紹了Android入門教程之ListView的應(yīng)用,結(jié)合簡單實例形式分析了Android中l(wèi)istview的簡單創(chuàng)建與使用步驟,需要的朋友可以參考下2016-10-10
Android 中 viewpager 滑動指示器的實例代碼
本文通過實例代碼給大家介紹了android 中 viewpager 滑動指示器,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-12-12
如何正確實現(xiàn)Android啟動屏畫面的方法(避免白屏)
本篇文章主要介紹了如何正確實現(xiàn)Android啟動屏畫面的方法(避免白屏),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Android audio音頻流數(shù)據(jù)異常問題解決分析
這篇文章主要為大家介紹了Android audio音頻流數(shù)據(jù)異常問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Android動態(tài)添加設(shè)置布局與控件的方法
這篇文章主要介紹了Android動態(tài)添加設(shè)置布局與控件的方法,涉及Android中布局與控件的相關(guān)操作技巧,需要的朋友可以參考下2016-01-01

