当前位置: 首页 > 面试题库 >

更改可折叠工具栏标题的正确方法

霍伟彦
2023-03-14
问题内容

当我更改collapsesingToolbar的标题时,标题不变。

我已经尝试过getSupportActionBar.setTitle和crashToolbar.setTitle,但这没有帮助。告诉我,怎么了?


问题答案:

我相信这个问题描述了您所遇到的问题。我也遇到了这个问题,并且今天已经解决了。本质上,处理折叠文本的代码仅在当前文本为null或文本大小更改时更新文本。当前,这是一个已关闭的错误,并且计划在将来的设计库版本中发布该补丁。现在,使用我的解决方法,即仅更改文本大小,然后再将其更改回。

这就是我所拥有的

private void setCollapsingToolbarLayoutTitle(String title) {
    mCollapsingToolbarLayout.setTitle(title);
    mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar);
    mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar);
    mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBarPlus1);
    mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBarPlus1);
}

在styles.xml

<style name="ExpandedAppBar" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">28sp</item>
    <item name="android:textColor">#000</item>
    <item name="android:textStyle">bold</item>
</style>

<style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">24sp</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textStyle">normal</item>
</style>

<style name="ExpandedAppBarPlus1" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">28.5sp</item>
    <item name="android:textColor">#000</item>
    <item name="android:textStyle">bold</item>
</style>

<style name="CollapsedAppBarPlus1" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">24.5sp</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textStyle">normal</item>
</style>

编码愉快。

编辑:以下代码来自可折叠工具栏布局内使用的可折叠文本帮助器,用于控制该视图的文本。

        if(availableWidth > 0.0F) {
            updateDrawText = this.mCurrentTextSize != newTextSize;
            this.mCurrentTextSize = newTextSize;
        }

        if(this.mTextToDraw == null || updateDrawText) {
            this.mTextPaint.setTextSize(this.mCurrentTextSize);
            CharSequence title = TextUtils.ellipsize(this.mText, this.mTextPaint, availableWidth, TruncateAt.END);
            if(this.mTextToDraw == null || !this.mTextToDraw.equals(title)) {
                this.mTextToDraw = title;
            }

            this.mTextWidth = this.mTextPaint.measureText(this.mTextToDraw, 0, this.mTextToDraw.length());
        }

令人讨厌的行是updateDrawText = this.mCurrentTextSize != newTextSize;设置布尔值的布尔值,以确定是否更改此行中的文本。if(this.mTextToDraw == null || updateDrawText) {
因此,当折叠的工具栏布局重新计算其视图时,确定文本大小的决定因素是textsize。如果您没有更改文字大小,那么折叠的工具栏布局标题将不会发生变化,除非它被折叠或从折叠位置展开



 类似资料:
  • 我正在创建一个视图及其相应的应用程序。我的包含一些项目,如果单击这些项目,则会将用户带到 。 在< code>DetailViewActivity上,我实现了一个可折叠的工具栏。现在,每次打开< code>DetailViewActivity时,都会在可折叠工具栏内的< code>ImageView上设置不同的图像(具有不同的尺寸)。 我希望默认打开到一定高度(例如 256dp),但如果图像高度大

  • 我想这样做,但与折叠工具栏布局或滚动后在工具栏中显示徽标和标题。 请帮助我

  • 我最近遇到了协调器布局的问题。当我尝试创建简单的折叠工具栏布局(如本例所示)时,工具栏似乎位于状态栏下,如下图所示(在preLolipop设备上,一切都正常,因为应用程序不会在状态栏下绘制)。 我的活动布局的代码片段: My Styles(仅限21版),其中BaseAppTheme父级为Theme.AppCompat.Light.NoActionBar:

  • 我正在尝试在我的android应用程序中实现折叠工具栏。我可以按我希望的方式显示工具栏,但滚动时它不会塌陷。 我正在使用以下代码 activity.xml main_toolbar.xml 下面是屏幕的外观

  • 我试着做一个弯曲的折叠工具栏,但是没有白色的角落覆盖我的内容,我成功地创建了视图,但是即使设置AppBarLayout背景为透明,也没有给我透明的边缘

  • 问题内容: 我有一个这样布置的应用程序,mainactivity包含2个带有相应片段的选项卡,第一个片段具有可正常使用的回收站视图,我试图在人向上或向下滚动时添加视差效果,不是确保我是否应该将其添加到片段的xml或mainactivity的xml中,我将其添加到mainactivity的xml并将片段包含为我的recyclerview,不用说视差不起作用,现在应用程序无法打开,我立即获取NullP