как очистить фокус после удаления фрагмента? - PullRequest
1 голос
/ 07 апреля 2019

проблема с четкой фокусировкой текста редактирования после удаления фрагмента из приложения. пока, кстати, у меня нет никаких проблем в Android 9, но мое реальное устройство имеет Android 7, и проблема появляется там

   searchFab.setOnClickListener(v -> {
            Fragment fragment = new SearchFragment();
            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.setCustomAnimations(R.anim.fragment_bottom_up, R.anim.fragment_top_down
                    , R.anim.fragment_bottom_up, R.anim.fragment_top_down);
            transaction.replace(R.id.fragment_area, fragment);
            transaction.addToBackStack(null);
            if (searchEditText.isFocused()) {
                if (searchEditText.getText().toString().equals("")) {
                    inputMethodManager.hideSoftInputFromWindow(searchEditText.getWindowToken(), 0);
                    searchEditText.clearFocus();
                    searchFabIcon.startAnimation(animationHide);
                    searchFabIcon.setImageResource(R.drawable.ic_search);
                    searchFabIcon.startAnimation(animationShow);
                    getSupportFragmentManager().popBackStack();
                } else {
                    searchEditText.setText("");
                }
            } else {
                transaction.commit();
                searchEditText.requestFocus();
                searchFabIcon.startAnimation(animationHide);
                searchFabIcon.setImageResource(R.drawable.ic_multiply);
                searchFabIcon.startAnimation(animationShow);
                inputMethodManager.showSoftInput(searchEditText,
InputMethodManager.SHOW_IMPLICIT);
            }
        });

1 Ответ

0 голосов
/ 08 апреля 2019

Наконец-то я нашел ответ, нужно только добавить эти две строки в свой XML-файл макета. в моем случае я помещаю их в родительский макет, и это решает проблему

android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...