2013-08-01 32 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

您可以添加在你的佈局這一觀點的透視圖,並設置監聽 。它會攔截所有點擊事件。

相關問題