當屏幕上有多個片段時,如何判斷用戶以何種方式與特定的片段進行交互?也許他們點擊一個按鈕,滾動列表,選項卡通過字段,任何東西。如何判斷用戶何時與片段交互?
我曾想過,也許我會在包含片段UI的片段/根佈局的片段/ FrameLayout上獲得onClick/onTouch/onFocusChanged偵聽器,但它們不會觸發。
我會嘗試設置各種手動觸發器,例如「如果用戶單擊此按鈕或滾動此視圖或此字段獲得焦點,那麼用戶已與此片段交互」,但顯然這是更復雜和更容易不準確的行爲。
不知道爲什麼我需要這個?以下是使用案例:
想想平板電腦上的Gmail:在橫向上,收件箱顯示在左側,第一條消息顯示在右側。如果我點擊不同的信息,它會顯示在右側。如果我旋轉到肖像,它會顯示我上次選擇的消息。
如果我以肖像開頭,它會顯示收件箱。
現在,我們來看看真正的技巧:我從橫向開始,在左側顯示收件箱,在右側顯示第一條消息。如果我立即將設備旋轉到肖像。但是,如果我與右側的窗格進行交互(例如,滾動電子郵件),然後旋轉設備,它將顯示第一條消息。 Gmail猜測我是否對收件箱或電子郵件更感興趣,並表明這一點。
我的挑戰是在應用程序中做類似的事情。當我從橫向(顯示兩個窗格)旋轉到縱向(顯示一個窗格)時,我不確定是顯示列表視圖還是默認的詳細視圖。如果我可以告訴用戶是否以某種方式(通過鍵盤或觸摸屏)與詳細視圖進行交互,那麼我知道要證明這一點。
你試過這個:http://stackoverflow.com/questions/21882251/how-to-handle-touch-events-on-a-fragment?如果你的片段沒有得到這個事件,那意味着其他一些視圖攔截它。 –
是的,我已經嘗試了根佈局上的onTouchListener。它不會着火。 –