当前位置: 首页 > 知识库问答 >
问题:

CollapsingToolbarLayout.set标题(title)更改appbarLayout后不起作用

古文康
2023-03-14

我想用折叠的collapsingToolbar加载一个片段(即以非展开的形式)。当我在不改变appbarLayout布局参数的情况下设置collapsingToolbar的标题时,标题设置正确,我可以看到标题。

问题是,我还需要更改appBarLayout布局参数,以防止collapsingToolbar扩展(即,我希望它看起来和行为像这个特定片段的常规非折叠工具栏)。但是,这样做会使标题不再显示。

我尝试了什么:我尝试了这些页面上列出的解决方案,但都无济于事:

  • 折叠工具栏布局设置标题() 不再工作
  • 折叠工具栏布局 setTitle() 除非折叠,否则不会更新
  • 折叠工具栏布局.setTitleEnabled(true);似乎没有任何效果

MainActivity.java我相信我已经将问题隔离到这些行中,但我不确定如何解决它。

collapsingToolbarLayout.setTitle("All Recent"); // works
appBarLayout.setExpanded(false, true); // works

// However, after adding the following lines, the above no longer works and the title does not appear in the toolbar
CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)appBarLayout.getLayoutParams();
lp.height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics());
appBarLayout.setLayoutParams(lp);

activity_main.xml

<!-- language: lang-xml -->

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/detail_backdrop_height"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax"
                android:adjustViewBounds="true" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                android:minHeight="?attr/actionBarSize"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:title="@string/drawer_item_locate_events" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:fillViewport="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <FrameLayout
            android:id="@+id/frame_fragments"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/floating_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        android:clickable="true"
        android:src="@mipmap/ic_add_a_photo"
        app:layout_anchor="@+id/appbar_layout"
        app:layout_anchorGravity="bottom|right|end" />
</android.support.design.widget.CoordinatorLayout>

更改appbarLayout的参数后不再显示标题

共有3个答案

孔斌
2023-03-14

只需将这行代码添加到xml布局中的< code > CollapsingToolbarLayout 标记中。

app:title="Title You Want"

如果要更改折叠ToolbarLayout标题,则可以使用。

勾裕
2023-03-14

这与在普通工具栏中设置标题是一样的。

在用于折叠工具栏的xml布局文件中,在CollapsingToolbarLayout中,您将拥有一个普通的工具栏(android.support.v7.widget.toolbar),您应该为其设置一个id(android:id=“@id/toolbar”。使用java类中的id查找此工具栏并设置标题。

  mToolbar = findViewById(R.id.toolbar);
  setSupportActionBar(mToolbar);
  getSupportActionBar().setTitle(R.string.home);
朱鸿畅
2023-03-14

我能够使用以下答案解决此问题 @DanielPersson 如何在折叠工具栏布局中的工具栏中固定标题:

collapsingToolbarLayout.setTitleEnabled(false);
toolbar.setTitle("My Title");

通过调用setTitleEn的(假);,标题出现在工具栏中。

 类似资料:
  • 我正在尝试更改一个JLabel的图标(背景),但我有一个问题,图标没有更新。每当我尝试更改main方法中的JLabel时,编译器首先抱怨变量不存在,所以我将它从JFrame初始化方法移到了类级变量。在此之后,Eclipse抱怨我试图从静态上下文引用一个非静态方法,因此我将设置为静态的。这使得程序可以编译,但是图标并没有在任何时候改变。 由于很难理解我的问题,这里提供了一个Eclipse工作区的下载

  • 图表标题定义要在图表顶部绘制的文本。 标题配置 标题在options.title中配置。图表标题的全局选项在Chart.defaults.global.title中定义。 名称 类型 默认值 描述 display Boolean false 是否显示标题 position String 'top' 标题未知更多... fontSize Number 12 字体大小 fontFamily Strin

  • 我想在切换项目时切换到底部导航视图的图标。 我有浅蓝色图标和深蓝色图标的选定项目。我正在为每个导航项目使用选择器drawable,但我看到下面这样的图像,灰色为非活动图像,蓝色为活动图像 这是我的代码 bottom_nav_menu 家 和选择器 计划程序选择器 设置选择器 收藏夹选择器 首页选择器 活动代码 我做错了什么?请帮助。。。 编辑:我正在使用以下绘图工具 在此处输入链接描述 在此处输入

  • 我有一个小的测试页面设置来测试我有的一个sprite表。中的每个sprite如下所示... 我的页面是这样的... null null 在循环过程中,我记录了类名,可以看到它的变化,并且这些名称对应于我的样式表中存在的类。和都在images文件夹中,并且images文件夹与我的页面位于同一目录中。 如果我只是从我的样式表中复制一个规则并将其直接放到我的页面上,并将名称替换为以进行测试,我就可以显示

  • 我正在尝试以编程方式更改页面。这第一行代码正在工作,但我不需要它延迟,所以我尝试了第二行,但它不起作用。我错过了什么? 工作(但我不想延迟): 不工作: 我在<代码>中调用它

  • 我有一个音乐播放器活动来控制歌曲的播放。我已经阅读了有关管理音频焦点的文档,并在