Android的Touch Mode

來源:互聯網
上載者:User

      大多數Android裝置都是觸控螢幕的,但是實際上Android裝置也支援鍵盤操作,允許通過鍵盤來完成導航,點擊,輸入等。

      當使用者通過鍵盤(或者軌跡球)操作的時候,有必要聚焦當前接受輸入的UI元素,例如,高亮(聚焦)某個按鈕,讓使用者知道當前正在操作的UI元素是哪個。

      但是,當使用者使用觸控螢幕與裝置互動的時候,始終聚焦當前UI元素就沒有必要了,而且很醜陋;使用者點擊哪個元素,哪個元素就是當前元素,無需高亮標識。並且,通過觸控螢幕與裝置互動的時候,點擊某個UI元素也不會導致該元素聚焦,此時的高亮效果是由Pressed狀態來完成的。也就是說,在Touch Mode模式之下,UI元素是不會進入聚焦狀態的,即使調用requestFocus也不會。

      那個,Android是如何區分這兩種情況的呢?

      答案就是Touch Mode。當使用者開始通過鍵盤與裝置互動的時候,裝置就退出Touch Mode模式;當使用者開始通過觸控螢幕與裝置互動的時候,裝置就進入Touch Mode模式。可以通過調用View的isInTouchMode來判斷裝置當前是否處於Touch Mode模式。

      但是,也有例外情況。有些UI元素,即使是在Touch Mode的狀態之下,也需要獲得焦點,典型的就是Edittext。那麼,這種情況該如何處理呢?

      答案就是做特殊處理。Android規定,某些元素,即使是在Touch Mode模式下,也可以獲得焦點。調用View的setFocusableInTouchMode(true)可以使View在Touch Mode模式之下仍然可獲得焦點(像Edittext就是在內部設定了這個屬性),調用isFocusableInTouchMode可以判斷View是否可在Touch Mode模式下聚焦。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.