Android IME:テキストにテキストを入力できるカスタムポップアップダイアログ(Swypeキーボードなど)を表示する

StackOverflow https://stackoverflow.com/questions/3514392

質問

以下のスクリーンショットのようなカスタムポップアップ(Swypeキーボードから借りた)のようなカスタムポップアップをどのように作成できるのか疑問に思っています。 TextView (A経由 inputConnection).

ご注意ください: これは inputMethodService 普通ではありません Activity. 。私はすでに別のものを起動しようとしました ActivityTheme:Dialog. 。しかし、それが開くとすぐに私は TextView そして、私のキーボードは消えます(そしてそれによって私 InputConnection なくなっている)。

Swype

役に立ちましたか?

解決

あなたはaを使用してみることができます PopupWindow. 。あなたはそれをあなたが望むことをさせるために少しハッキングをする必要があり、それのための唯一の良いドキュメントはソースです。

他のヒント

私もこの問題に頭を叩いていたので、ついにそれを理解しました。上記のソリューションは正しいですが、あなたが指摘したように、それらはアクティビティではないため、それらは入力methodserviceから使用することはできません。トリックは、PopupWindowを作成することです キーボードビューのサブクラスで. 。負のY位置を使用することにより、PopupWindowはSwypeのようにキーボードの上に表示できます。

頑張って、バリー

正解:

  1. aを作成します ポップアップウィンドウ そして、あなたの見解をその中に入れてください
  2. 電話 popupwindow.setclippingEnabled(false)
  3. popupwindow.showatlocation()]を呼び出すhttp://developer.android.com/reference/android/widget/popupwindow.html#showatlocation(android.view.view, 、int、int、int))負のy座標を備えています。

これにより、スクリーンショットのようにIMEの上にポップアップが表示されます。

ガイダンスに従う人々に平和があります、

解決 :

AlertDialog dialog;

//add this to your code
dialog = builder.create();
Window window = dialog.getWindow(); 

WindowManager.LayoutParams lp = window.getAttributes();
lp.token = mInputView.getWindowToken();
lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;

window.setAttributes(lp);
window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
//end addons

dialog.show();

=====更新30.09.2015 MinputViewあなたのキーボードクラスの一般名..see

@Override
    public View onCreateInputView() {
        mInputView =(MyKeyboardView) getLayoutInflater().inflate( R.layout.input, null);
....
}

より詳しい情報 : http://developer.android.com/guide/topics/text/creating-input-method.html

幸運を。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top