2013-08-01 29 views
3

的XML布局文件的样子:如何将onClickListener设置为Android中的整体屏幕?

<?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(在其他情况下),因此添加这些监听器会非常缓慢且精细。

+0

添加一个android:点击attrubute查看视图中的所有内容。你有什么失败的原因是textviews处理他们自己的文字选择的点击事件,所以触摸不会传递到链上。您可以尝试在textview上设置android:textIsSelectable = false,这可能会使其从触摸处理程序返回false而不是true,并使其工作。 –

+0

将android:addStatesFromChildren =“true”添加到FrameLayout中,然后再试一次 – Blackbelt

+0

将属性'android:clickable =“true”'添加到TextView。 – Cornholio

回答

1

你可以这样做:

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

ViewTreeObserver文档:

视图树观察者用于注册监听器,可以是 通知在视图树的全球变化。这种全球性的事件 包括,但不限于,整个树的布局,开始拉通,触摸模式改变

0

您可以添加在你的布局这一观点的透视图,并设置监听 。它会拦截所有点击事件。

相关问题