多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > android 禁止ViewPager滑動

android 禁止ViewPager滑動

來源:程序員人生   發布時間:2015-01-07 08:55:31 閱讀次數:5612次

最近項目中,有個需求就是要制止ViewPager滑動事件,我們看下360手機助手的界面,風格就類似這樣的


大家如果使用過360手機助手就會發現中間內容是不可以滑動的,現在寫1個demo,講下怎樣制止ViewPager事件的滑動

布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <com.example.viewpagears.ui.MyViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         />
</RelativeLayout>

自定義ViewPager類

public class MyViewPager extends ViewPager {
private static final String TAG = "MyViewPager";
private boolean result = false;
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyViewPager(Context context) {
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if(result)
      return super.onInterceptTouchEvent(arg0);
else
return false;
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
if(result)
return super.onTouchEvent(arg0);
else
return false;
}
}


MainActivity.java

package com.example.viewpagears;


import java.util.ArrayList;
import java.util.List;


import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;


import com.example.viewpagears.ui.MyViewPager;


public class MainActivity extends Activity {
private MyViewPager viewpager;
private List<ImageView> views;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
viewpager = (MyViewPager) findViewById(R.id.viewpager);
MyAdapter adapter  = new MyAdapter();
viewpager.setAdapter(adapter);
}
private void initData() {
views = new ArrayList<ImageView>();
for(int i=0;i<6;i++){
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.ic_launcher);
iv.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "被點擊了", 0).show();
}
});
views.add(iv);
}
}
class MyAdapter extends PagerAdapter{


@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}


@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}


@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}


@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
container.addView(views.get(position));
return views.get(position);
}

}
}

其實我們在自定義Viewpager其實很簡單就是重寫了2個方法:onInterceptTouchEvent(),onTouchEvent()

onInterceptTouchEvent()表示攔截touch事件

onTouchEvent()觸摸事件

在android中onTouchEvent默許是return true表示可以觸摸,大家可以通過源碼去看下,在這里就不講了,onInterceptTouchEvent()不能返回true,如果return true子view甚么事件都被攔截了,Viewpager對這個方法進行了1些重寫,可以去看看他的源碼,


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品一区二区三区久久 | 欧美性高清video | 午夜美女影院 | 亚洲第一成网站 | 在线观看免费a∨网站 | a毛片免费 | 偷柏自拍亚洲欧美综合在线图 | 亚洲图片小说网 | 精品国产成人综合久久小说 | 国产 日韩欧美 | 99爱视频99爱在线观看免费 | 另类小说综合 | 在线观看免费a∨网站 | 国产一精品一aⅴ一免费 | 精品久久久久不卡无毒 | 欧美亚洲综合另类在线观看 | 自拍视频网 | 噜噜在线| 国产成人经典三级在线观看 | 国产拍视频 | 久久99精品久久久久久秒播 | 久久中文精品 | 亚洲国产精品成 | 亚洲一区日韩二区欧美三区 | 一级一级 a爱片免费视频 | 日韩欧美视频在线播放 | 亚洲精品久 | 国产日韩欧美精品一区二区三区 | 国产综合精品一区二区 | 欧美亚洲国产一区二区三区 | 自拍偷拍第一页 | 亚洲综合激情另类小说区 | 亚洲精品国产精品国自产观看 | 91国内精品久久久久怡红院 | 羞羞网页登界面入口 | 亚洲精品亚洲人成人网 | 美国毛片在线观看 | 国产亚洲毛片在线 | 精品久久香蕉国产线看观看亚洲 | japanese日本护士xxxx18一19 | 欧美亚洲国产成人不卡 |