問題タブ [contextual-action-bar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ハードウェアの戻るボタンをクリックしてキーボードを離すと、コンテキスト ActionBar が非表示になります
編集に Contextual ActionBar を使用しています。キーボードが表示されていて、ハードウェアの [戻る] ボタンを押して非表示にしたい場合、キーボードは非表示になりますが、コンテキスト アクションバーもキャンセルされ、どうすればよいかわかりません。それを続けてください。
誰?
android - 選択ハンドルが WebView に表示されない (Android 4.0 ~ 4.3)
ActionMode.Callback
でテキストを選択するためのカスタム コンテキスト アクション バーを表示するために、カスタムを作成しましたWebView
。Android 4.4 では問題なく動作しますが、4.1 ~ 4.3 では選択ハンドルが表示されません。強調表示されている 1 つの単語に対してカスタム操作を実行することはできますが、ハンドルがないために選択を変更することはできません。
また、ActionMode
が破壊された場合、選択は画面からクリアされません。対照的に、ユーザーが他の場所をタップして選択をクリアしても、ActionMode
は破棄されません。
clearFocus()
選択を削除しようとするために呼び出すべきメソッドであるかどうかさえわかりません。その行にコメントしましたが、4.4 の動作は変わりませんでした。それでも問題なく動作しました。
これらの問題を解決するにはどうすればよいですか?
これは私の現在の実装です:
android - コンテキスト アクション バーからタイトルを削除
コンテキスト アクション バーのタイトルに割り当てられているビューを削除したいと考えています。
タイトルを設定したくないことに注意してください。私はView
完全になくなってほしい。これは、アクションをオーバーフロー メニューにドロップするのではなく、メニュー バーに表示できるように、より多くのスペースを確保するためです。
また、設定したくないことに注意してくださいandroid:showAsAction="always"
。アイコンの空き容量を Android に決めてもらいたい。タイトル用に予約されている空白の領域を削除して、より多くのスペースを確保したいだけです。
アップデート
私が試したこと:
ActionMode.setCustomView(null)
ActionMode.setTitleOptionalHint(true)
ActionMode.setTitle("")
.
残念ながら、これらのどれも機能していません。
更新 2
私が試みていた方法では、私の望む結果を達成することは不可能であることがわかりました。タイトルを削除すると、アイコンを追加する余地がなくなります。Android は、デバイスの画面サイズに基づいてハード リミットを設定します。メニューにさらにアイコンを追加したい場合は、@adneal が提供する回答を参照してください。
実際に(以下に示すように)タイトルがあり、それを削除したい場合ActionMode.setTitle("")
は、受け入れられた回答で @CommonsWare によって提供されているように、 を呼び出すことができます。
android - ListView 内のすべてのアイテムの選択 - ActionMode
ActionMode 機能が実装された ListView があります。リスト項目を長押しすると、コンテキストの ActionMode が表示されます。そして、複数選択などがあります。私がやろうとしているのは、1 つのボタンを押してリスト ビュー内のすべての項目を選択する方法を理解できないことです。正確にそれを行う方法がわかりません。
ゴミ箱の横にあるボタンを押します (4 つの正方形のボタンが強調表示され、すべてのリスト項目 (ニンジン、タマネギ、ギリシャ ヨーグルト) が選択されます。
java - コンテキスト アクションバーを使用してアクションバーでアイテムを共有する
初めてコンテキスト アクションバーを使用します。ListView の項目をクリックすると、その項目を何らかの方法で共有できるようになりたい (whatsapp/mail/gmail/drive など)。私はこの方法を試していますが、うまくいきません:メニューレイアウト:
コンテキスト アクションバー クラス:
まあ、長いクリックをするとコンテキストアクションバーがうまく開きますが、アクションバーの共有ボタンは機能しません。「機能しない」と言うときは、クリックできないように見えることを意味します。アイテムをクリックしても何も機能しません。何も表示されません。私が欲しいのは、複数の共有方法を開くことです。ありがとう
java - Contextual Action Bar (CAB) の ShareActionProvider
マルチモードのリストビューでコンテキスト アクション バーを使用しています。
CAB の onCreateActionMode の間に、ShareActionProvider を初期化します。対応するスニペットは次のとおりです。
shareAction メソッド:
このように使用すると、StringBuilder 変数 sb は更新されますが、ShareActionProvider Intent は更新されません。ここで定義されているメソッドを使用してみました: https://stackoverflow.com/a/16281251/2119391 しかし、ドキュメントによると、 onShareTargetSelected メソッドはインテントへの変更を許可しません:
共有ターゲットが選択されたときに呼び出されます。クライアントは、共有が実際に実行される前に、何らかのアクションを実行するかどうかを決定できます。
注: インテントの変更は許可されておらず、インテントへの変更は無視されます。
注: ここでインテントを処理しないでください。このコールバックは、共有が実行されていることをクライアントに通知することを目的としているため、クライアントは必要に応じて UI を更新できます。
onCreateActionMode メソッドで共有インテント (およびインテント エクストラ) が初期化されるため、共有時に最新の StringBuilder sb が発生しません。
私は非常に醜い(しかし機能する)コードを介して問題を一時的に解決しました:MultiChoiceModeListenerのmodeCallbackでonItemCheckedStateChangedで共有インテントの初期化を呼び出します。
コードスニペット:
android - ダイアログにコンテキスト アクション バーを追加する方法
DialogFragment 内の GridView にコンテキスト メニューが必要な場合がいくつかあります。私のプロジェクトは API 8 以降をサポートしているため、appcompat サポート ライブラリを使用しています。これまでのところ、基礎となる ActionBarActivity でActivity.startSupportActionMode()を呼び出してみましたが、実際にはダイアログの下のContextual ActionBar/ActionMode が開始されます。ダイアログとしてテーマにした Activity を使用する、一般的だがハックな (そしてオーバーヘッドの高い) メソッドに代わる方法を探しています。
android - EditText テキスト選択で CAB が表示されないようにする
テキスト選択機能を維持しながら、EditText でテキストを選択したときに標準のコンテキスト アクション バーが表示されないようにしようとしています。(カスタムビューを使用してコピー、カット、ペーストしたいため)
私はウェブを閲覧し、次のことを試しましたが、うまくいきませんでした。今何をすべきかわかりません。
onLongClick() をオーバーライドして false を返そうとしたため、CAB が表示されなくなりました。しかし、テキスト選択も無効になるため、これは解決策ではありません。
setCustomSelectionActionModeCallback(null) を設定してみましたが、まったく効果がありません。
setCustomSelectionActionModeCallback() を onCreateActionMode() メソッドを含むカスタム ActionModeCallback で設定しようとしましたが、false を返して「モードを中止」しますが、残念ながらテキスト選択機能も無効になります。
以下のように、EditText を拡張して startActionMode() をオーバーライドし、スーパーに null を渡そうとしましたが、クラッシュしました。
.
次のエラーで