4

xml 布局文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout  android:id="@+id/my_rootViewID"
    <LinearLayout>

        <ImageView/>

        <TextView/>

        <ImageView/>

    </LinearLayout>
</FrameLayout>

我试过这个:

my_view = findViewById(R.id.my_rootViewID);
my_view.setOnClickListener( new My_OnClickListener() );

我的问题:这仅适用于 ImageViews,但 TextView 不可点击。我也可以将 OnClickListener 专门设置为 TextView,但我有很多 TextView(在其他情况下),因此添加这些侦听器会非常缓慢且复杂。

4

2 回答 2

2

你可以这样做:

ViewTreeObserver viewTreeObserver = myView.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {...}

来自以下文档ViewTreeObserver

视图树观察者用于注册可以通知视图树中全局更改的侦听器。此类全局事件包括但不限于整棵树的布局、绘图通道的开始、触摸模式更改

于 2013-08-01T16:56:49.807 回答
0

您可以在布局上添加透明视图并为此视图设置侦听器。它将拦截所有点击事件。

于 2013-08-01T17:05:52.783 回答