Android SearchView OnFocusChangeListener:根本不调用onFocusChange

时间:2015-01-14 13:35:37

标签: android android-fragments focus listener searchview

我在活动中有一个SearchView;当用户执行搜索时,包含搜索结果的Fragment正在添加到同一个Activity中。

现在我想要的是,当点击SearchView(因此它获得焦点,并且用户在那里输入)时,已经显示的Fragment(包含搜索结果)应该变得暗淡/模糊。

因此,我尝试在OnFocusChangedListener的生成周期回调方法中为SearchView设置onActivityCreated但似乎不是完全被召唤。

Fragment

所以我错过了什么? 我应该怎样做才能在用户点击时调出final Activity myActivity = getActivity(); Log.i(TAG, "myActivity>"+myActivity.toString());//check SearchView mySearchView = (SearchView) myActivity.findViewById(R.id.searchActivity_searchView); Log.i(TAG, "mySearchView>"+mySearchView.toString());//check mySearchView.setOnFocusChangeListener(new OnFocusChangeListener() { @SuppressLint("NewApi") @Override public void onFocusChange(View v, boolean hasFocus) { Log.i(TAG, "onFocusChange OF OnFocusChangeListener IN SearchResultsFragment CALLED."); if (hasFocus) { myActivity.getWindow().setDimAmount(1.0f); } } }); ,从而激活onFocusChanged在其中输入搜索查询?

注意:如果需要完整的SSCCE代码,请在评论中提问,我会发布。

1 个答案:

答案 0 :(得分:38)

对于迟到的回答感到抱歉,但我遇到了同样的问题并在搜索过程中发现了这个问题,所以它可能对其他人有帮助。

您是否尝试过使用mySearchView.setOnQueryTextFocusChangeListener()代替mySearchView.setOnFocusChangeListener()

为我工作。