首先,请帮助我改写标题以更好地适应问题,让其他人找到 这个问题已经被问到here但是我的回答并不令我满意,我将解释原因。
注意:我将v7-AppCompat Support Library ~v22
与Toolbar
和setSupportActionBar(toolbar)
问题
如何约束展开ActionView
的{{1}}(在我的情况下是SearchView)来填充父级,但不要将其他MenuItem
推到范围之外。
明显(不够好)答案
在代码中,我们可以在项目上使用MenuItem
,但是:
一个。扩展后,"返回"按钮显示在MenuItemCompat.expandActionView(item);
的顶部。 This并没有真正解决它
湾在按下后,DrawerToggle
将再次崩溃。
作为known,在SearchView
上设置iconifiedByDefault(false)
以及SearchView
会使其展开(以及某些side effects),但是:见' 1'以上。
我当前的解决方案
我在第二个解决方案中使用自定义宽度系数(~0.7),强制app:showAsAction="ifRoom|collapseActionView"
的宽度为(SearchView
宽度)*(系数)。
这有点好,但有时会失败(我猜菜单没有完全准备好),并且有可能,通常扩展Toolbar
(第一个解决方案)会导致所需的宽度。
我尝试过另一件事:
将SearchView
设置为SearchView
的自定义布局,而不是Toolbar
。但它开始崩溃,我似乎无法扩大它。另外,我想这样做"对"方式而不是使用自定义布局。
如果有任何帮助,我会很乐意再添加一些代码 THX!
答案 0 :(得分:0)
似乎操作栏限制了SearchView的最大值。以下代码适用于我:
final MenuItem item = menu.findItem(R.id.search);
item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItem.SHOW_AS_ACTION_ALWAYS);
mSearchView = (SearchView) MenuItemCompat.getActionView(item);
mSearchView.setMaxWidth(Integer.MAX_VALUE);
核心技巧是改变SearchView的maxWith。
希望这会对你有所帮助。