2012-08-01 48 views
0

我想不斷檢查片段是否可見或更好。如果鍵盤出現在Android應用程序中。什麼是最好的方法去做這件事?在android中不斷「檢查」片段可見度/鍵盤可見度的最佳方法

我對活動生命週期並不太熟悉,但我希望這是正確的方法。下面的代碼是用OnCreate方法編寫的。我需要它不斷運行。

if (timeFragment.isVisible()){ 
    Toast.makeText(getApplicationContext(), "Time visible", Toast.LENGTH_LONG).show(); 
} 
+0

Wehat你的意思是「如果鍵盤存在」?例如:你的意思是重點?或者如果顯示軟鍵盤?或者是其他東西? – 2012-08-08 15:21:13

+0

如果軟鍵盤存在。 – EGHDK 2012-08-09 16:21:30

回答

1

對於片段,功能setUserVisibleHint(布爾ISVISIBLE)的每次發射的片段變得可見或不可見的。

與輪詢相比,這將節約資源。在timeFragment:

public void setUserVisibleHint(boolean isVisible) { 
    if (isVisible) 
     Toast.makeText(getActivity(), "Time becoming visible", Toast.LENGTH_LONG).show(); 
    else 
     Toast.makeText(getActivity(), "Time becoming invisible", Toast.LENGTH_LONG).show(); 
} 

希望這有助於...

+0

好的,所以我把這段代碼完全放到我的timeFragment.java中,正好在我的'onCreateView'和'onActivityCreated'下面。在eclipse中沒有錯誤,但它似乎不起作用。 – EGHDK 2012-08-01 14:28:11

+0

有趣。這段代碼一直在爲我工作。我唯一能想到的是添加super.setUserVisibleHint(isVisible)。另外,如果你在調試器中,這個函數會被調用嗎?另一件事可能是添加@Override標誌來確認函數定義中沒有拼寫錯誤。 – Aviral 2012-08-01 18:01:50

+0

Android開發人員說,'setUserVisibleHint'是API級別15.我添加@Override,但仍然沒有。啊。看起來這將是一件痛苦的事情。 – EGHDK 2012-08-01 18:12:28

0

如果你真正想要的是檢查軟鍵盤是目前屏幕上(因爲我從你的回答假設我的上述評論) ,你可以使用這種頗爲冒險的方法listener