我在活动中有一个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代码,请在评论中提问,我会发布。
答案 0 :(得分:38)
对于迟到的回答感到抱歉,但我遇到了同样的问题并在搜索过程中发现了这个问题,所以它可能对其他人有帮助。
您是否尝试过使用mySearchView.setOnQueryTextFocusChangeListener()
代替mySearchView.setOnFocusChangeListener()
?
为我工作。