Android 图像库上的图像视图不可单击

Android 图像库上的图像视图不可单击,android,Android,我有一个带有setOnItemClickListener和setOnItemSelectedListener的全屏多媒体资料。在那个画廊上,我有一个线性布局,有3个图像视图。我已经准备好让imageviews可点击,但是当我点击它们时,gallery.setOnItemClickListener被激活。如何使图像视图可点击 整个布局非常复杂,所以我在这里放了一张相关部分的图片 在代码中,我有: ImageView prev = (ImageView) findViewById(R.id

我有一个带有
setOnItemClickListener
setOnItemSelectedListener
的全屏多媒体资料。在那个画廊上,我有一个线性布局,有3个图像视图。我已经准备好让imageviews可点击,但是当我点击它们时,
gallery.setOnItemClickListener
被激活。如何使图像视图可点击

整个布局非常复杂,所以我在这里放了一张相关部分的图片

在代码中,我有:

    ImageView prev = (ImageView) findViewById(R.id.previousImage);
    ImageView play = (ImageView) findViewById(R.id.playAllImages);
    ImageView next = (ImageView) findViewById(R.id.nextImage);

    prev.setClickable(true);
    prev.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            YADA YADA YADA ...
        }
    });

    next.setClickable(true);
    next.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            YADA YADA YADA ...
        }
    });

    play.setClickable(true);
    play.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            YADA YADA YADA ...
        }
    });
我还有画廊的听众:

_horizGallery.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            YADA YADA YADA...
        }
    });


    _horizGallery.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView parent, View view,
        int position, long id) {
            YADA YADA YADA...
        }

        public void onNothingSelected(AdapterView parent) {
                YADA YADA YADA...
            }
    });
\u horizGallery.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
雅达雅达雅达。。。
}
});
_setOnItemSelectedListener(新的OnItemSelectedListener()){
已选择公共视图(AdapterView父视图、视图、,
内部位置,长id){
雅达雅达雅达。。。
}
未选择公共无效(AdapterView父级){
雅达雅达雅达。。。
}
});
xml是这样的(为了便于实际使用,我去掉了一些不相关的部分):




它都在一个相对视图中,由于某些原因没有显示出来。

我认为,因为您对
findViewById
的调用只与外部父视图相关,即您的图库,只要您单击它,就会触发图库的itemClickListener

此外,我认为将每个ImageView包装在其自己的线性布局中会导致问题。你应该考虑用它里面的IVIEVIEWS有1个线性布局。p> 然后我认为您需要做的是膨胀布局,然后从该视图中检索ImageView以向其添加侦听器

View v = LayoutInflater.from(context).inflate(R.id.layoutToScrollDown,null);
或按如下方式放大视图:

View v = View.inflate(context,R.id.layoutToScrollDown,null);
或者甚至可以尝试findviewbyid:

View v = findViewById(R.id.layoutToScrollDown);
然后获取图像视图:

ImageView prev = (ImageView) v.findViewById(R.id.previousImage);
ImageView play = (ImageView) v.findViewById(R.id.playAllImages);
ImageView next = (ImageView) v.findViewById(R.id.nextImage);
然后,您可以继续正常地遵循代码


我希望这有帮助

我认为,因为您对
findViewById
的调用只与外部父视图(即您的图库)相关,因此只要单击它,就会触发图库的itemClickListener

此外,我认为将每个ImageView包装在其自己的线性布局中会导致问题。你应该考虑用它里面的IVIEVIEWS有1个线性布局。p> 然后我认为您需要做的是膨胀布局,然后从该视图中检索ImageView以向其添加侦听器

View v = LayoutInflater.from(context).inflate(R.id.layoutToScrollDown,null);
或按如下方式放大视图:

View v = View.inflate(context,R.id.layoutToScrollDown,null);
或者甚至可以尝试findviewbyid:

View v = findViewById(R.id.layoutToScrollDown);
然后获取图像视图:

ImageView prev = (ImageView) v.findViewById(R.id.previousImage);
ImageView play = (ImageView) v.findViewById(R.id.playAllImages);
ImageView next = (ImageView) v.findViewById(R.id.nextImage);
然后,您可以继续正常地遵循代码


我希望这有帮助

您的图库位于布局XML文件中的图像下方。这意味着就点击而言,图库位于图像的前面

您需要将库组件放置在任何图像之前。考虑使用<代码> RealValayOut< <代码>作为外部元素。将图库组件放置在图像处于中的
线性布局
之前。将
android:layout\u alignParentTop=“true”
添加到库中,并将
android:layout\u alignParentBottom=“true”
添加到
LinearLayout
容器中


此外,无需将每个
图像视图
包装在
线性布局中
——这只会降低应用程序UI的绘制速度。

您的图库位于布局XML文件中图像的下方。这意味着就点击而言,图库位于图像的前面

您需要将库组件放置在任何图像之前。考虑使用<代码> RealValayOut< <代码>作为外部元素。将图库组件放置在图像处于中的
线性布局
之前。将
android:layout\u alignParentTop=“true”
添加到库中,并将
android:layout\u alignParentBottom=“true”
添加到
LinearLayout
容器中


另外,也没有必要将每个
图像视图
包装在
线性布局中
——这只会让你的应用程序的UI绘制速度比你慢。

让我试试看它是如何运行的,但我已经准备好了,如果它解决了问题,我会自杀。关于额外的线性布局,在我的应用程序中,我有5个图像(问题中的代码bacame大于necesary),因此我简化了实际使用,布局需要以必要的间距显示图像。这很有效。非常感谢。现在我不得不自杀(开玩笑)。奇怪的是,我最初在相对布局的按钮上有图像(我甚至打开了应用程序的最后一个版本,只是为了让舒尔Ihad在询问之前就这样做)。Eclipse一定有解析问题(allready在我身上出现过很多次),让我来试试这个,看看它是如何运行的,但是我allready提出了这个问题,所以如果它解决了问题,我会自杀。关于额外的线性布局,在我的应用程序中,我有5个图像(问题中的代码bacame大于necesary),因此我简化了实际使用,布局需要以必要的间距显示图像。这很有效。非常感谢。现在我不得不自杀(开玩笑)。奇怪的是,我最初在相对布局的按钮上有图像(我甚至打开了应用程序的最后一个版本,只是为了让舒尔Ihad在询问之前就这样做)。Eclipse一定有解析问题(allready在我身上出现过很多次)。这是个好主意,我会在尝试@Joseph opton之后再尝试。它不添加代码,使应用程序更快。我不会想到这个,非常感谢你,也许对未来会有帮助。这是个好主意,我会在尝试@Joseph opton之后再尝试。它不添加代码,使应用程序更快。我不会想到这一点,所以非常感谢你,也许对未来会有帮助。