当Viewpager为空时,不会调用OnTouch事件

时间:2015-03-31 19:48:45

标签: android android-viewpager ontouchevent

当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;
    }

如果没有图像,如何让View事件在ViewPager中运行?

谢谢

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

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。它可能会帮助别人。它可能不是最好的解决方案,但它对我有用。

基本上,     我检查一下arraylist是否&gt; 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)); 
      }

}

答案 1 :(得分:0)

如果你在xml文件中将android:visibility =“gone”更改为android:visibility =“invisible”,它可能会有效。因为如果它消失了,就无法触及。