成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何在Android中利用Viewpager取消滑動(dòng)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在Android中利用Viewpager取消滑動(dòng),文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新新互聯(lián),憑借10年的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有近千家案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)。

前言

現(xiàn)在很多app,首頁(yè)不允許滑動(dòng)切換(因?yàn)轫?yè)面加載吧),但是又用viewpage來(lái)管理frgament.因?yàn)榉奖懵?

以前在網(wǎng)上找的例子:

public class NoScrollViewPager extends ViewPager { 
 public NoScrollViewPager(Context context, AttributeSet attrs) { 
  super(context, attrs); 
 } 
public NoScrollViewPager(Context context) { 
 super(context); 
 } 
 @Override 
 public boolean dispatchTouchEvent(MotionEvent ev) {  
 //不攔截,否則子孩子都無(wú)法收到事件,一般這個(gè)自定義的時(shí)候都不作處理
 return super.dispatchTouchEvent(ev); 
 } 
@Override
 public boolean onInterceptTouchEvent(MotionEvent ev) { 
 return super.onInterceptTouchEvent(ev);
 } 
 @Override
 public boolean onTouchEvent(MotionEvent ev) { 
  return true;
 }

這個(gè)自定義如果繼承的Viewpager是低版本的,那么是沒(méi)問(wèn)題的.

但是如果你編譯時(shí)用是高版本的api,5.0以后吧.上面這個(gè)自定義就會(huì)失效,

你會(huì)發(fā)現(xiàn),會(huì)有細(xì)微的滑動(dòng).還是能滑動(dòng)的

判斷老的還是新的,看setOnPageChangeListener就知道了

最新的Viewpager里面這個(gè)方法已經(jīng)廢棄了,改成addOnPageChangeListener()了.

由于之前改viewpager做懶加載.一直保留了一個(gè)老版本的Viewpager使用.直到最近才發(fā)現(xiàn).

改進(jìn)后

public class NoScrollViewPager extends ViewPager { 
private boolean isScroll;
public NoScrollViewPager(Context context,AttributeSetattrs{ 
 super(context, attrs); 
 } 
 public NoScrollViewPager(Context context) {  
  super(context); 
 } 
/** 
 * 1.dispatchTouchEvent一般情況不做處理
 *,如果修改了默認(rèn)的返回值,子孩子都無(wú)法收到事件 
 */ 
 @Override
 public boolean dispatchTouchEvent(MotionEvent ev) {      
  return super.dispatchTouchEvent(ev); // return true;不行 
 } 
 /** 
 * 是否攔截 
 * 攔截:會(huì)走到自己的onTouchEvent方法里面來(lái) 
 * 不攔截:事件傳遞給子孩子 
 */ 
 @Override
 public boolean onInterceptTouchEvent(MotionEvent ev) {
 // return false;//可行,不攔截事件,
  // return true;//不行,孩子無(wú)法處理事件
  //return super.onInterceptTouchEvent(ev);//不行,會(huì)有細(xì)微移動(dòng) 
 if (isScroll){ 
   return super.onInterceptTouchEvent(ev);
 }else{ 
   return false;
 } 
} 
 /** 
 * 是否消費(fèi)事件 
 * 消費(fèi):事件就結(jié)束 
 * 不消費(fèi):往父控件傳 
 */ 
@Override 
 public boolean onTouchEvent(MotionEvent ev) { 
 //return false;// 可行,不消費(fèi),傳給父控件 
 //return true;// 可行,消費(fèi),攔截事件 
 //super.onTouchEvent(ev); //不行,
 //雖然onInterceptTouchEvent中攔截了,
 //但是如果viewpage里面子控件不是viewgroup,還是會(huì)調(diào)用這個(gè)方法. 
 if (isScroll){
   return super.onTouchEvent(ev);
 }else { 
   return true;// 可行,消費(fèi),攔截事件
 }
 }
 public void setScroll(boolean scroll) {
  isScroll = scroll;
 }
}

上述就是小編為大家分享的如何在Android中利用Viewpager取消滑動(dòng)了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:如何在Android中利用Viewpager取消滑動(dòng)
瀏覽地址:http://jinyejixie.com/article16/gpihdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)商城網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
高阳县| 柳林县| 仙居县| 丰宁| 蓝田县| 甘洛县| 双柏县| 临泽县| 鄯善县| 宜都市| 黑河市| 盐池县| 利津县| 博乐市| 界首市| 尼木县| 吴江市| 赤壁市| 鄂托克前旗| 荥阳市| 阿巴嘎旗| 和田县| 柳林县| 磐石市| 渭源县| 敦化市| 且末县| 二连浩特市| 柳州市| 海淀区| 遵化市| 永修县| 漠河县| 长乐市| 吉林省| 浮山县| 泾川县| 高州市| 台山市| 法库县| 奉节县|