我在Activity中有一个SearchView;当用户执行搜索时,包含搜索结果的片段将添加到同一个Activity中.
现在我想要的是,当单击SearchView时(因此它获得焦点,并且用户在那里键入),已经显示的片段(包含搜索结果)应该变暗/模糊.
所以我尝试在Fragment的onActivityCreated生命周期回调方法中为SearchView设置OnFocusChangedListener,但似乎根本没有调用它.
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,从而激活SearchView在其中键入搜索查询?
解决方法
对不起,迟到的答案,但我遇到了同样的问题,在搜索过程中发现了这个问题,所以它可能对其他人有所帮助.
您是否尝试过使用mySearchView.setOnQueryTextFocusChangeListener()而不是mySearchView.setOnFocusChangeListener()?
为我工作.