我想做一个看起来像这样的动作栏:
我无法做到这一点。
我试图使用here描述的崩溃事物,但这并不是我想要的。
例如,谷歌地图中的操作栏看起来与我想要的类似。
有人可以告诉我如何实现这个目标吗?
答案 0 :(得分:14)
ActionbarSherlock是一个很棒的库。最新的(4.2.0)版本有一种方法可以让您在活动开始时搜索视图 SearchView.setIconified(boolean);
因此,如果您想让搜索视图始终可见,则应使用以下代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//Create the search view
SearchView searchView = new SearchView(getSherlockActivity().getSupportActionBar().getThemedContext());
searchView.setQueryHint("Search for countries…");
searchView.setIconified(false);
menu.add("Search")
.setIcon(R.drawable.abs__ic_search)
.setActionView(searchView)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
答案 1 :(得分:6)
如果你使用actionbarsherlock,你必须像这样做
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
menu.add(0, 1, 1, R.string.ac_refresh ).setIcon(R.drawable.ic_navigation_refresh).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, 2, 2, R.string.ac_settings).setIcon(R.drawable.ic_action_settings).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, 3, 3, R.string.ac_favourite).setIcon(isFavouriteChannel(channel) ? R.drawable.ic_rating_important : R.drawable.ic_rating_not_important).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, 4, 4, R.string.ac_search ).setIcon(R.drawable.ic_action_search).setActionView(R.layout.action_search)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
return super.onCreateOptionsMenu(menu);
}
看看setActionView(R.layout.action_search) - 这是xml文件中的文本视图。如果您希望其他操作图标始终使用MenuItem.SHOW_AS_ACTION_ALWAYS