Example usage for android.support.v4.view ViewPager setOnTouchListener

List of usage examples for android.support.v4.view ViewPager setOnTouchListener

Introduction

In this page you can find the example usage for android.support.v4.view ViewPager setOnTouchListener.

Prototype

public void setOnTouchListener(OnTouchListener l) 

Source Link

Document

Register a callback to be invoked when a touch event is sent to this view.

Usage

From source file:com.mingle.discolor.PagerSlidingTabStrip.java

public void setViewPager(ViewPager pager) {
    this.pager = pager;

    if (colors != null) {
        setBackgroundColor(colors[pager.getCurrentItem()]);
    }/*from  www. ja va 2  s.  c om*/

    if (pager.getAdapter() == null) {
        throw new IllegalStateException("ViewPager does not have adapter instance.");
    }

    pager.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                startX = event.getRawX();
                direction = ScrollDirection.SCROLL_DIRECTION_NONE;
                break;
            case MotionEvent.ACTION_MOVE:

                if (event.getRawX() > startX) {
                    direction = ScrollDirection.SCROLL_DIRECTION_LEFT;

                } else {
                    direction = ScrollDirection.SCROLL_DIRECTION_RIGHT;
                }
                break;
            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:

                break;

            }

            return false;
        }
    });
    pager.setOnPageChangeListener(pageListener);

    notifyDataSetChanged();
}

From source file:com.momock.binder.container.ViewPagerBinder.java

public void onBind(final ViewPager view, final IDataList<?> dataSource) {
    if (view != null) {
        if (refIndicator != null && refIndicator.get() != null) {
            refIndicator.get().setCount(dataSource.getItemCount());
        }//from   w w  w  .j  av a2  s  .c o m
        view.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                position = adapter instanceof IRoundAdapter
                        ? ((IRoundAdapter) adapter).getRealPosition(position)
                        : position;
                Object item = dataSource.getItem(position);
                ItemEventArgs args = new ItemEventArgs(view, position, item);
                itemSelectedEvent.fireEvent(view, args);
                if (refIndicator != null && refIndicator.get() != null) {
                    refIndicator.get().setCurrentIndex(position);
                }
            }

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {
                viewPagerState = state;
            }
        });
        view.setOnTouchListener(new View.OnTouchListener() {
            GestureDetector detector = null;

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                view.getParent().requestDisallowInterceptTouchEvent(true);
                if (detector == null) {
                    detector = new GestureDetector(v.getContext(),
                            new GestureDetector.SimpleOnGestureListener() {

                                @Override
                                public boolean onSingleTapConfirmed(MotionEvent e) {
                                    Object item = dataSource.getItem(adapter instanceof IRoundAdapter
                                            ? ((IRoundAdapter) adapter).getRealPosition(view.getCurrentItem())
                                            : view.getCurrentItem());
                                    ItemEventArgs args = new ItemEventArgs(view, view.getCurrentItem(), item);
                                    itemClickedEvent.fireEvent(view, args);
                                    return true;
                                }

                            });
                }
                return detector.onTouchEvent(event);
            }
        });
        adapter = new PagerAdapter() {
            BlockingQueue<View> savedViews = new LinkedBlockingQueue<View>();

            @Override
            public int getCount() {
                return dataSource.getItemCount();
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == ((View) object);
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                View convertView = null;
                if (savedViews.size() > 0) {
                    convertView = savedViews.poll();
                }
                Object item = dataSource.getItem(position);
                if (convertView != null)
                    convertView.setTag(null);
                convertView = itemBinder.onCreateItemView(convertView, item, ViewPagerBinder.this);
                convertView.setTag(item);
                container.addView(convertView, 0);
                return convertView;
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                savedViews.add((View) object);
                container.removeView((View) object);
            }

            long lastDataSetChangedTick = 0;

            @Override
            public void notifyDataSetChanged() {
                lastDataSetChangedTick = System.nanoTime();
                getDataChangedEvent().fireEvent(this, new EventArgs());
                if (refIndicator != null && refIndicator.get() != null) {
                    refIndicator.get().setCount(dataSource.getItemCount());
                }
                super.notifyDataSetChanged();
                Logger.debug("ViewPagerBinder.PagerAdapter.notifyDataSetChanged");
            }

            long updateTick = 0;

            @Override
            public void startUpdate(ViewGroup container) {
                updateTick = System.nanoTime();
                super.startUpdate(container);
            }

            @Override
            public void setPrimaryItem(ViewGroup container, int position, Object object) {
                super.setPrimaryItem(container, position, object);
            }

            @Override
            public void finishUpdate(ViewGroup container) {
                super.finishUpdate(container);
                if (lastDataSetChangedTick < updateTick)
                    lastDataSetChangedTick = 0;
            }

            @Override
            public int getItemPosition(Object object) {
                return lastDataSetChangedTick == 0 ? PagerAdapter.POSITION_UNCHANGED
                        : PagerAdapter.POSITION_NONE;
            }
        };
        if (round)
            adapter = new RoundPagerAdapter(adapter);
        view.setAdapter(adapter);
        dataSource.addDataChangedHandler(new IEventHandler<DataChangedEventArgs>() {

            @Override
            public void process(Object sender, DataChangedEventArgs args) {
                adapter.notifyDataSetChanged();
            }

        });
        if (round)
            view.setCurrentItem(Math.max(100, dataSource.getItemCount() * 100), false);
    }
}

From source file:com.yahoo.mobile.client.android.yodel.ui.ImageGalleryActivity.java

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_image_gallery);
    setTitle("");

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
    setSupportActionBar(toolbar);/* w w  w  .  j a  va2 s.  co m*/
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().setStatusBarColor(getResources().getColor(android.R.color.black));
    }

    final List<Photo> photos = new Gson().fromJson(getIntent().getStringExtra(EXTRA_PHOTO_LIST),
            new TypeToken<List<Photo>>() {
            }.getType());
    mGalleryPagerAdapter = new GalleryPagerAdapter(getSupportFragmentManager(), photos);
    mCaptionPagerIndicator = (CaptionViewPagerIndicator) findViewById(R.id.caption_pager_indicator);
    mCaptionPagerIndicator.setCurrentItem(0, mGalleryPagerAdapter.getCount());
    mCaptionPagerIndicator.setCaption(photos.get(0).getCaption());

    final ViewPager galleryPager = (ViewPager) findViewById(R.id.image_view_pager);
    galleryPager.setAdapter(mGalleryPagerAdapter);
    galleryPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            mCaptionPagerIndicator.setCurrentItem(position, mGalleryPagerAdapter.getCount());
            mCaptionPagerIndicator.setCaption(photos.get(position).getCaption());
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });
    // Delay any activity transition until the ViewPager is ready to be drawn
    supportPostponeEnterTransition();
    galleryPager.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        public boolean onPreDraw() {
            galleryPager.getViewTreeObserver().removeOnPreDrawListener(this);
            supportStartPostponedEnterTransition();
            return true;
        }
    });
    final GestureDetector clickDetector = new GestureDetector(this,
            new GestureDetector.SimpleOnGestureListener() {
                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    toggleSystemUiVisibility();
                    return true;
                }
            });

    galleryPager.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return clickDetector.onTouchEvent(event);
        }
    });
}

From source file:com.google.android.apps.dashclock.configuration.ConfigureAppearanceFragment.java

private void configureStylePager(final ViewPager pager, final PagerPositionStrip positionStrip,
        final String[] styleNames, final String styleComponent, final int gravity, final String preference) {
    String currentStyleName = mCurrentStyleNames.get(preference);

    final LayoutInflater inflater = getActivity().getLayoutInflater();
    pager.setAdapter(new PagerAdapter() {
        @Override/*from w  w  w  .j ava2  s. c  om*/
        public int getCount() {
            return styleNames.length;
        }

        @Override
        public boolean isViewFromObject(View view, Object o) {
            return view == o;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            FrameLayout wrapper = new FrameLayout(getActivity());
            ViewPager.LayoutParams wrapperLp = new ViewPager.LayoutParams();
            wrapper.setLayoutParams(wrapperLp);
            String styleName = styleNames[position];
            if (styleName.contains("analog")) {
                styleName += "_white";
            }
            View v = inflater.inflate(
                    AppearanceConfig.getLayoutByStyleName(getActivity(), styleComponent, styleName), container,
                    false);
            FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT);
            lp.gravity = gravity;
            v.setLayoutParams(lp);
            wrapper.addView(v);
            container.addView(wrapper);
            return wrapper;
        }

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

    pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            mCurrentStyleNames.put(preference, styleNames[position]);
        }

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            positionStrip.setPosition(position + positionOffset);
        }
    });

    positionStrip.setPageCount(styleNames.length);

    pager.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
                showPositionStrips(true, -1);
                break;

            case MotionEvent.ACTION_UP:
                showPositionStrips(false, AUTO_HIDE_DELAY_MILLIS);
                break;
            }
            return false;
        }
    });

    for (int i = 0; i < styleNames.length; i++) {
        if (currentStyleName.equals(styleNames[i])) {
            pager.setCurrentItem(i);
            positionStrip.setPosition(i);
            break;
        }
    }
}

From source file:ru.gkpromtech.exhibition.media.FullImageActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_full_image);

    Bundle extras = getIntent().getExtras();
    items = (List<Media>) extras.getSerializable("items");
    files = (List<String>) extras.getSerializable("files");
    int index = extras.getInt("index");

    if (items != null)
        mode = SHOW_ITEMS_MODE;/* w  w w . j ava  2s  .  c om*/
    else if (files != null)
        mode = SHOW_FILES_MODE;

    final View controlsView = findViewById(R.id.fullscreen_content_controls);
    final ViewPager pager = (ViewPager) findViewById(R.id.pager);

    appDirectoryName = getResources().getString(R.string.app_name);
    imageRoot = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
            appDirectoryName);

    // ViewPager and its adapters use support library
    // fragments, so use getSupportFragmentManager.
    pager.setAdapter(new FullImagePagerAdapter(getSupportFragmentManager()));
    pager.setCurrentItem(index);
    if (mode == SHOW_ITEMS_MODE)
        setTitle(items.get(index).name);
    else if (mode == SHOW_FILES_MODE)
        setTitle(new File(files.get(index)).getName());
    else
        setTitle("Photo");

    // Set up an instance of SystemUiHider to control the system UI for
    // this activity.
    mSystemUiHider = SystemUiHider.getInstance(this, pager, HIDER_FLAGS);
    mSystemUiHider.setup();
    mSystemUiHider.setOnVisibilityChangeListener(new SystemUiHider.OnVisibilityChangeListener() {
        // Cached values.
        int mControlsHeight;
        int mShortAnimTime;

        @Override
        public void onVisibilityChange(boolean visible) {
            // If the ViewPropertyAnimator API is available
            // (Honeycomb MR2 and later), use it to animate the
            // in-layout UI controls at the bottom of the
            // screen.
            if (mControlsHeight == 0) {
                mControlsHeight = controlsView.getHeight();
            }
            if (mShortAnimTime == 0) {
                mShortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
            }
            controlsView.animate().translationY(visible ? 0 : mControlsHeight).setDuration(mShortAnimTime);

            if (visible && AUTO_HIDE) {
                // Schedule a hide().
                delayedHide(AUTO_HIDE_DELAY_MILLIS);
            }
        }
    });

    pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i2) {
        }

        @Override
        public void onPageSelected(int index) {
            if (mode == SHOW_ITEMS_MODE)
                setTitle(items.get(index).name);
            else if (mode == SHOW_FILES_MODE)
                setTitle(new File(files.get(index)).getName());
            else
                setTitle("Photo");
        }

        @Override
        public void onPageScrollStateChanged(int i) {
        }
    });

    // Upon interacting with UI controls, delay any scheduled hide()
    // operations to prevent the jarring behavior of controls going away
    // while interacting with the UI.
    pager.setOnTouchListener(mDelayHideTouchListener);
}