Android:折叠工具栏布局和搜索视图,文本重叠

Android:折叠工具栏布局和搜索视图,文本重叠,android,searchview,android-collapsingtoolbarlayout,Android,Searchview,Android Collapsingtoolbarlayout,我对重叠折叠工具栏布局标题和SearchView文本没有什么问题。展开CollasingToolbarLayout时,没有问题: 但折叠时,文本重叠: 如何修复它?现在答案很简单,单击搜索按钮时展开折叠工具栏布局。多亏了Tuấn Trần Anh和此代码: coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout); appBarLayout = (AppBarLayout) findViewBy

我对重叠折叠工具栏布局标题和SearchView文本没有什么问题。展开CollasingToolbarLayout时,没有问题:

但折叠时,文本重叠:


如何修复它?

现在答案很简单,单击搜索按钮时展开折叠工具栏布局。多亏了Tuấn Trần Anh和此代码:

coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);
appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();

behavior.setTopAndBottomOffset(0);
behavior.onNestedPreScroll(coordinatorLayout, appBarLayout, null, 0, 1, new int[2]);
更多信息请参见。

编辑

还没有解决,他们又解决了一个实际问题。随着文本的变化。现在的诀窍是使用ControllableAppLayout来知道该条何时折叠或展开,因此您只需设置并清空标题setTitle(“”)

您可以在这里找到我的实现

问题:

我尝试了Tomas的答案,但出现了一个问题,用户一滚动,appbar就会再次崩溃,问题再次出现

因此,我提出了另一个解决方案,即在扩展searchview时,使折叠的标题文本透明。这可以很好地工作,并且不依赖或更改appbar的折叠/展开状态

简单地说:

    if (searchViewExpanding) {
        collapsingToolbarLayout.setCollapsedTitleTextColor(Color.TRANSPARENT);
    } else {
        collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE);
    }

当然,您需要处理搜索菜单项的
setOnActionExpandListener
,才能知道何时调用它。

a)小部件的行为与预期完全一致。没有办法。b) 看看Play Store是如何解决这个问题的。搜索操作图标扩展为覆盖活动的搜索卡。感谢您的解释。我认为现在我最好在点击搜索按钮时展开折叠工具栏布局,但代码仍然不起作用:。@EugenPechanec我认为这不是正确的行为,Play Store方法可能不是理想的方法。此外,它是变化无常的,我的nexus 4工作良好,而nexus 5则不工作。顺便说一句,我刚刚向问题跟踪者报告了错误已报告给官方的错误跟踪者,标记为已分配,并且显然将在未来的更新中修复。这实际上不起作用,因为用户一滚动应用程序栏就会再次折叠+无论如何,谢谢你让我走上了正确的道路。检查我的其他解决方案,了解我是如何解决这个问题的。对我来说,我的行为与以前一样。不,它在22.2.1中没有解决:错误仍然存在。对,我希望他们能解决它。我更新我的评论我也使用此解决方案,但我忘记更新此页面;)谢谢你,你好,Greg,我正试图这样使用你的解决方案:
MenuItemCompat.setOnActionExpandListener(searchItem,new MenuItemCompat.OnActionExpandListener(){public boolean onMenuItemActionExpand(MenuItem项){collasingToolbar.SetCollapsedTitleteColor(Color.TRANSPARENT);返回true;}public boolean onMenuItemActionExplapse(MenuItem项){CollasingToolbar.setCollapsedTitleTextColor(Color.WHITE);返回true;}});
但是如果我在工具栏折叠时关闭searchview,文本不会变为白色。你能帮我吗?我不知道为什么它对你不起作用,搜索视图折叠时代码没有被执行吗?嗨,Greg,我在这里打开了一个新问题[链接]这更好地描述了我的问题。我的代码应该被执行,因为在这些searchview回调中,我保存了一个布尔值,它告诉我视图是否打开(我使用它在设备旋转之间保持searchview状态,并且工作正常)。