【问题标题】:Flip in ViewPager?在 ViewPager 中翻转?
【发布时间】:2013-03-29 18:00:00
【问题描述】:

我在我的应用程序中使用 Viewpager。当用户向左或向右滑动时,我将显示下一张或上一张图像 - 基本上是幻灯片(图像)类型的应用程序..

如果用户点击应用程序,我想在 ViewPager 中翻转视图。每个视图后面的视图 - 用户在点击时必须能够翻转视图。

这是代码,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);        

    .... <some code> ....

    viewPager = (ViewPager) findViewById(R.id.main_viewpager);

    ImagePagerAdapter adapter = new ImagePagerAdapter();
    viewPager.setAdapter(adapter);

    PageListener pageListener = new PageListener();
    viewPager.setOnPageChangeListener((OnPageChangeListener) pageListener);

    final GestureDetector tapGestureDetector = new GestureDetector(this, new TapGestureListener());

    viewPager.setOnTouchListener(new OnTouchListener() {
         public boolean onTouch(View v, MotionEvent event) {
              tapGestureDetector.onTouchEvent(event);
              return false;
         }
    });
}

private class TapGestureListener extends GestureDetector.SimpleOnGestureListener{
    @Override
    public boolean onSingleTapConfirmed(MotionEvent e) {

    // HERE I CAPTURED SINGLE TAP.. HOW DO I CHANGE THE VIEW OF VIEWPAGER?  
            return false;
    }
} 

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:

    我认为您应该将 onTouchEvent 设置为页面内的 View,而不是整个 viewpager。 在 ImageViewPagerAdapter 中,您有

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
    

    创建视图时,我假设一个 ImageView,将 onTouchListener 设置为它,以便您可以引用可以触摸的视图。

    翻转本身看this example,很清楚。

    编辑:

    这里是我从我制作的应用程序中复制粘贴的示例,我切断了 onclicklistener 中的实际代码,因为它很长且不相关。我使用这种方法是因为在 istantiateItem() 中创建了要将侦听器附加到的视图。

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
        Context context = MainActivity.this;
        Log.e("InstantiateItem",Integer.toString(position));
          ImageView imageView = new ImageView(context);
    
          imageView.setImageResource(mImages[position]);
    
          imageView.setOnClickListener(new OnClickListener() {
              public void onClick(View v) {
                 // do some stuf when clicked...to see if it works you could try
                 Log.e("Click on image",Integer.toString(position));
              }
          });
          ((ViewPager) container).addView(imageView, 0);
    
          return imageView;
    
    }
    

    【讨论】:

    • 我尝试为 ImageView 设置 onTouchListener,但效果很好。您能否发布一些代码或指出一些工作示例?
    • @Naveen 这种方法不走运?
    • 很抱歉错过了这个帖子。今天会试一试,让你知道..谢谢!!
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 2019-03-13
    • 1970-01-01
    相关资源
    最近更新 更多