Мягкая клавиатура не скрывается от фрагмента. Как спрятать клавиатуру? - PullRequest
1 голос
/ 10 октября 2019

Я создал BottomSheet используя фрагмент. Мой фрагмент содержит EditText. Клавиатура открывается автоматически, когда EditText находится в фокусе, но она не закрывается / скрывается автоматически, когда она не в фокусе. Я хочу скрыть / закрыть клавиатуру, когда нажимаю за пределами фрагмента BottomSheet. Как мне это выяснить?

Это мой класс фрагмента

public class ListItemInputFragment extends BottomSheetDialogFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        final EditText newTaskEt, detailsEt;
        final TextView savBtn;

        View view = inflater.inflate(R.layout.fragment_list_item_input, container, false);

        newTaskEt = view.findViewById(R.id.new_task_et_id);
        detailsEt = view.findViewById(R.id.details_et_id);
        savBtn = view.findViewById(R.id.save_btn_id);

        InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

        imm.hideSoftInputFromWindow(newTaskEt.getWindowToken(), 0);


        saveButtonClick(savBtn);

        return view;
    }


    private void saveButtonClick(View view) {
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity().getBaseContext(), "Data Saved.", Toast.LENGTH_SHORT).show();
            }
        });
    }

}

1 Ответ

0 голосов
/ 11 октября 2019

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

я просто создаю стиль в своемФайл res / values ​​/ styles.xml

    <style name="DialogStyle" parent="Theme.Design.Light.BottomSheetDialog">
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowSoftInputMode">adjustResize</item>
    </style>

, а затем внутри класса фрагмента я поместил следующий код

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogStyle);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...