Android 6.0のFloating ActionModeに対応する必要があるもの/ないもの


Floating ActionModeとは

iPhoneみたいに、長押ししたそばにコピペのオペレーションメニューがポップアップで出る
機能です。
(どうやってアップルの特許を回避したのかが、個人的には気になりますね・・・w)


https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-text-selectionから引用

リファレンスによると、「startActionModeの第二引数でActionMode.TYPE_FLOATINGを指定せよ」みたいなことが書いてあります。

通常のTextViewは特に対応不要

Editor: Turn on Floating Toolbar Action Mode for Text Selection
https://android.googlesource.com/platform/frameworks/base/+/b8ed5b75da7b48e3f5c40cd9bae1d29fd5a8db9b%5E%21/core/java/android/widget/Editor.java

これのおかげで、特になにもActionModeにカスタマイズをしていないTextView(もしくはそれを継承したクラス)は、かってにFloating ActionModeがサポートされます

WebViewは・・・

TextViewじゃない、自前実装でもないテキストは、だいたいWebViewですが、
10/9現在、最新の「AndroidシステムのWebView」を利用しても、Floating ActionModeにはなっていませんし、Floating ActionModeを独自で使う、ということもおそらくできません。

[Android] Supporting floating select ActionModes for web content

Add floating toolbar support for web content selections.
BUG=389153
Review URL: https://codereview.chromium.org/1242613002

https://chromium.googlesource.com/chromium/src.git/+/98a1a3a17168e4b61e723dc973dad81c1190d78a%5E%21/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java

ただ、じつはFloating ActionModeに対応することじたいは、もう対応が入っています。

しらべてみたところ、Chromium 46くらい(上のスクリーンショットは48ですがw)でマージされているのに対し、10月9日現在世の中に出回っているAndroid WebViewはchromium 45

つまり、もうしばらくしてAndroidシステムのWebViewが46にアップデートされれば、なにもしなくても、WebViewのテキストもFloating ActionModeをサポートするようになります!

結論

変なカスタマイズを作りこもうとせず、気長に待つのが一番です!

 
 

補足(2015/10/21 追記)

とかいってたら、Chrome 46がリリースされましたね。
http://googlechromereleases.blogspot.jp/2015/10/stable-channel-update-for-chrome-os_20.html

Floating Action Modeが使えるようになってました。