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 BottomSheet實現(xiàn)可拉伸控件
這篇文章主要為大家詳細(xì)介紹了Android BottomSheet實現(xiàn)可拉伸控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
Android入門之使用SharedPreference存取信息詳解
這篇文章主要為大家詳細(xì)介紹了Android如何使用SharedPreference實現(xiàn)存取信息,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Android有一定的幫助,需要的可以參考一下2022-12-12
Android跳轉(zhuǎn)到通訊錄獲取用戶名稱和手機(jī)號碼的實現(xiàn)思路
這篇文章主要介紹了Android跳轉(zhuǎn)到通訊錄獲取用戶名稱和手機(jī)號碼的實現(xiàn)思路,當(dāng)用戶點擊跳轉(zhuǎn)到通訊錄界面 并取通訊錄姓名和手機(jī)號碼 ,實現(xiàn)代碼簡單易懂,非常不錯感興趣的朋友一起看看吧2016-10-10
Android編程實現(xiàn)3D滑動旋轉(zhuǎn)效果的方法
這篇文章主要介紹了Android編程實現(xiàn)3D滑動旋轉(zhuǎn)效果的方法,主要通過繼承Animation自定義Rotate3D來實現(xiàn)3D翻頁效果,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
詳解Flutter WebView與JS互相調(diào)用簡易指南
這篇文章主要介紹了詳解Flutter WebView與JS互相調(diào)用簡易指南,分為JS調(diào)用Flutter和Flutter調(diào)用JS,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04

