6

ビューを作成し、これらのビューをlinearlayoutに追加しています。これらの入力は、メッセンジャーアプリケーションのように画面下部のedittextから取得されます。「完了」ボタンを押すたびにトリガーされ、そのメッセージがそのメッセージlinearlayoutに追加されます。

問題 :

これらのメッセージの間に、たとえば10メッセージごとにadviewを配置したい場合。Edittextはフォーカスを失い、レイアウト全体が下にスクロールします。

私が欲しいもの:

Edittextはフォーカスを失うことはなく、キーボードを開いた状態で入力を待機するたびにアクティブになる必要があります。

私が試したがうまくいかなかったこと:

if (messageCounter % 10 == 0) {

        LinearLayout advertisedMessageLayout = new LinearLayout(this);
        advertisedMessageLayout.setOrientation(LinearLayout.VERTICAL);
        advertisedMessageLayout.setLayoutParams(new LayoutParams(
                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

        AdView av = new AdView(this, AdSize.BANNER, MBConstants.ADVIEW_ID);
        //remove focus for every child of adview
        for (int i = 0; i < av.getChildCount(); i++) {
            av.getChildAt(i).setFocusable(false);
            av.getChildAt(i).setFocusableInTouchMode(false);
            av.getChildAt(i).setClickable(false);

        }
        av.setFocusable(false);
        av.setFocusableInTouchMode(false);
        av.setClickable(false);
        av.setEnabled(false);

        AdRequest request = new AdRequest();
        av.loadAd(request);

        advertisedMessageLayout.addView(messageRow);
        advertisedMessageLayout.addView(av);


        return advertisedMessageLayout;

    }

adviewがフォーカスを取り、通常のビューのように動作するのを防ぐための可能な方法はありますか?

ありがとう。

4

3 に答える 3

0

このような状況で Admob WebView が注目を集めます。バナー ビューからフォーカスを削除するには、アクティビティからフォーカスをクリアするか、ソフト キーボードを閉じます

    etAddNote.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {           
                activity.getCurrentFocus().clearFocus();

                return true;
            }
            return false;
        }
    });

またはソフトキーボードを閉じる

etAddNote.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                View view = activity.getCurrentFocus();
                if (view != null) {
                    InputMethodManager imm = (InputMethodManager) activity
                            .getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                }
                return true;
            }
            return false;
        }
    });
于 2016-11-29T12:28:48.930 に答える