如何在CollapsingToolbarLayout中显示工具栏的徽标,图标,标题,副标题?

时间:2015-06-26 09:04:27

标签: android android-toolbar android-collapsingtoolbarlayout android-coordinatorlayout android-appbarlayout

Android支持设计库发布后,我希望实现类似 Twitter个人资料页面的效果,其中var temp=[]; angular.forEach(values, function(data, index){ var tempObj={}; tempObj.location=index; tempObj.services=data; temp.push(tempObj); }); return temp; 的{​​{1}当屏幕垂直滚动时,可以更改{}和Toolbar。因此,我尝试使用 Android支持设计库中的titlesubtitleCoordinatorLayoutAppBarLayout来实现此效果。一切都按预期工作,但CollapsingToolbarLayout的内容无法按照我的意愿显示或更改。我应该一直希望显示Toolbar的{​​{1}},ToolbarcollapseIconnavigationIcon,但即使我设置了它们,它们也没有显示出来在布局和编程。就像blog所说的那样,

  

请注意,在这些情况下,您应该调用setTitle()   CollapsingToolbarLayout,而不是工具栏本身。

如果您选中doc,则会发现title仅关注subtitle的设置,但对ToolbarCollapsingToolbarLayout无效和title

有人可以告诉我如何通过collapseIconnavigationIcon实现这种效果吗?如果他们无法做到,那么还有什么其他的东西呢?有人对此有什么想法吗?

任何提示将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:2)

此问题已报告here为错误。我个人经历过我的一个应用程序。设置工具栏的topMargin对我有用。正如有人对错误报告发表评论,这是修复,作为问题报告中的函数。

private void fixApi21ToolBarBug(Toolbar toolbar){
    if(Build.VERSION.SDK_INT!=21) return; //only on api 21
    final int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
    final int result = (resourceId > 0) ? getResources().getDimensionPixelSize(resourceId) * 2 : 0;
    final CollapsingToolbarLayout.LayoutParams params = (CollapsingToolbarLayout.LayoutParams) toolbar.getLayoutParams();
    params.topMargin -= result;
    toolbar.setLayoutParams(params);
}

在此处查看结果。

enter image description here

答案 1 :(得分:1)

陷入同样的​​问题。对我来说,通过从布局参数中删除android:fitsSystemWindows="true"来解决此问题。但是,这意味着状态栏不会成为折叠工具栏背景的一部分。