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(在其他情况下),所以添加theese听众会非常慢,并且很精细。
答案 0 :(得分:1)
你可以这样做:
ViewTreeObserver viewTreeObserver = myView.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {...}
来自ViewTreeObserver
的文档:
视图树观察器用于注册可以的侦听器 通知视图树中的全局更改。这样的全球事件 包括但不限于整棵树的布局,从头开始 绘图通过,触摸模式改变
答案 1 :(得分:0)
您可以在布局上添加透明视图,并为此视图设置侦听器。它将拦截所有点击事件。