我正在处理使用SearchView
中嵌入的ActionBar
的应用程序。除了一个Activity
外,它在整个应用程序中都能很好地运行。在此Activity
中,我可以单击搜索图标以在操作栏上显示搜索视图,但只要在搜索视图中输入任何内容,我的文本输入就会被忽略(不显示任何文本),并且焦点离开搜索框。
此活动与我的应用程序中的其他活动之间的主要区别在于此活动包含使用TabActivity
实施的标签。我想知道这是否是原因,如果有人有潜在的解决方案。
这是SearchView
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSubmitButtonEnabled(true);
searchView.setOnQueryTextListener(queryTextListener);
searchView.setQueryHint("product search");
return true;
}
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
_listControl = new ListControl(_thisProduct,query);
_listControl.startGetData();
return true;
}
};
这是我的标签式活动的设置。标签在不同视图之间切换。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product);
//set up tabs
mTabHost = getTabHost();
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Info").setContent(R.id.productLayout));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Specs").setContent(R.id.specLayout));
mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("Reviews").setContent(R.id.reviewLayout));
mTabHost.addTab(mTabHost.newTabSpec("tab_test4").setIndicator("Buy").setContent(R.id.textView4));//
mTabHost.setCurrentTab(0);
mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 40;
mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 40;
mTabHost.getTabWidget().getChildAt(2).getLayoutParams().height = 40;
mTabHost.getTabWidget().getChildAt(3).getLayoutParams().height = 40;
答案 0 :(得分:0)
我确定SearchView应该使用标签式活动,并会尽快让您知道。同时,您可以尝试使用ViewPager而不是使用与片段一起使用的选项卡式活动,或者作为选项ActionBar本身提供显示选项卡的功能。知道怎么回事。