应用的键盘卡在Galaxy s9上

时间:2018-07-03 00:49:18

标签: android android-studio

我的应用程序中有一个片段,您在其中单击自动完成输入中的选择。当用户单击选择时,我希望键盘隐藏。它已经在包含Android Studio中我的模拟器的多种设备上运行了一段时间。但是,当我拿到Galaxy s9时,键盘会变得透明,并在试图隐藏它时卡住。 这是进行选择之前的屏幕: enter image description here

这是在选择之后: enter image description here

我尝试了所有在银河s9上以相同结果隐藏键盘的方法,包括此答案中的所有内容:https://stackoverflow.com/a/17789187/5347702

在其他任何设备上都可以正常工作。 这是s9上的错误,还是我需要在较新的设备上进行其他更改? (在我的s7上效果很好)

谢谢

这是我当前隐藏键盘的代码:

if(mActivity.getCurrentFocus() != null) {
        InputMethodManager inputManager = (InputMethodManager) mActivity.getSystemService(INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }

在自动完成功能(在对话框中)中选择一个选项后便会调用它:

acRecipeName.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //get meal time from spinner
            Spinner mealTimeSpinner = mealDialog.findViewById(R.id.meal_time_spinner);
            String mealTime = mealTimeSpinner.getSelectedItem().toString();
            final String mType = mealTime.toLowerCase();
            LinearLayout llView = getLayout(mealTime);

            Recipe recipe = (Recipe)adapterView.getAdapter().getItem(i);
            String recipeId = recipe.getId();
            String recipeText = recipe.getName();
            String mealtime = mType + sdf.format(selectedDate);

            AddMeal task = new AddMeal(mealtime, recipeId, recipeText, llView, WeekViewFragment.this);
            URL addURL = NetworkUtils.buildUrl("add_to_plan", null);
            task.execute(addURL);

            hideKeyboard();

           mealDialog.dismiss();




        }
    });

0 个答案:

没有答案