【问题标题】:OnTouch event is not called when Viewpager is emptyViewpager 为空时不调用 OnTouch 事件
【发布时间】:2015-03-31 19:48:45
【问题描述】:

当 ViewPager 中有图像时,触摸事件可以正常工作。 但是,当没有图像/空文件夹时,Touch 事件不起作用。

我的应用根据用户选择的文件夹将图像加载到 ViewPager。

代码:

xml:

    <test.com.ExtendedViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="514dp"
        android:background="@drawable/no_image"
        android:visibility="gone" /> 

如您所见,当文件夹/目录为空时,ViewPager 会显示默认图像。但是,Touch 事件不起作用。

public void LoadViewPager() {
    ImagePathList = new ArrayList<String>();
    for (File file : listFile){
        ImagePathList.add(file.getAbsolutePath());
    }        
    mViewPager.setAdapter(new ViewPagerAdapter(MainActivity.this, ImagePathList));   //Custom ViewPager Adapter
    mViewPager.setCurrentItem(LastItemPos); 

适配器:

    @Override
    public View instantiateItem(final View view, int position) {
        final Zoom_ScaleImageView imageView = new Zoom_ScaleImageView(activity);
        imageLoader.loadImage(AdapterImageList.get(position),  new SimpleImageLoadingListener() {
            @Override
            public void onLoadingComplete(String path, View NoView, Bitmap bitmap) {
                imageView.setImageBitmap(bitmap);
                ((ViewPager) view).addView(imageView, 0);   
            }
        });                 
        return imageView;
    }

当没有图像时,如何使 Touch 事件在 ViewPager 中起作用?

谢谢

编辑: 请参阅下面的解决方案...

【问题讨论】:

  • 如何设置 on touch 监听器?
  • 尝试把你的图片放到一个LinearLayout中,并在布局上实现onTouchListener。
  • 触摸事件在此类 Zoom_ScaleImageView 中。它非常长,这就是我没有包括它的原因。我从其中一个开源软件中得到它并对其进行了修改。我使用这个开源类的原因是它可以双击缩放。谢谢

标签: android android-viewpager touch-event


【解决方案1】:

我想出了一个解决方案。它可能会帮助其他人。这可能不是最好的解决方案,但它对我有用。

基本上, 我检查arraylist是否> 0。 如果不 > 0, 然后加载无图像可绘制。

public void LoadViewPager() {
    if(ImagePathList.size() > 0)       
        mViewPager.setAdapter(new ViewPagerAdapter(MainActivity.this, ImagePathList)); 
    else
      {
      //load the drawable
         ImagePathList.add("drawable")
         mViewPager.setAdapter(new ViewPagerAdapter(MainActivity.this, ImagePathList)); 
      }

}

【讨论】:

    【解决方案2】:

    如果您在 xml 文件中将 android:visibility="gone" 更改为 android:visibility="invisible" 可能会起作用。因为如果没有了,就不能碰了。

    【讨论】:

    • 感谢您的回答,但事实并非如此,因为我以编程方式将其设置为可见状态。背景图像“no.image”确实出现了。我按照您的建议进行了更改,但结果仍然相同。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多