gpt4 book ai didi

标题中有两行的 Android 工具栏?

转载 作者:可可西里 更新时间:2023-11-01 19:00:18 29 4
gpt4 key购买 nike

我想要一个双倍高度的操作栏(如 Material 指南示例中所示),但标题中(可能)有 2 行文本。我使用的标题是动态的,取决于页面中显示的项目。如果只有一行,它应该看起来像一个普通的操作栏,如果有 2 行,那么文本应该中断并落到新的一行上。无论是一行还是两行,操作按钮都应与文本的第一行保持对齐。

我读到 Toolbar是执行操作栏的新动态方式,所以我认为这可能是可行的方法(我知道那里有答案可以让您覆盖旧的操作栏标题 TextView 以使其成为 2 行,但这看起来不像我要做什么)。我使用的是 Android 4.4+,所以我需要为工具栏使用 appcompat v7 库。

我在查看代码时发现标题 TextView 仅限于一行(https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/appcompat/src/android/support/v7/widget/Toolbar.java - 包含代码 mTitleTextView.setSingleLine();)。

然后我想既然下面有一个单行副标题,我们可以更改该文本的格式,我可以将它的格式设置为与标题文本相同的格式,并在必要时将我的标题分成两部分。我写了一些基本代码来拆分字符串,但它依赖于能够判断我是否需要拆分它 - 实际上我发现 toolbar.isTitleTruncated() 总是返回 false(两者都来 self 的直接从 getSupportActionBar().isTitleTruncated() 访问的工具栏对象。

我试过答案 hereTextView 包装在 Toolbar 中,但是当我这样做时,我无法让 TextView 与 Toolbar 操作按钮对齐。如果我为单行正确对齐(使用顶部填充),那么双行是错误的,反之亦然。这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/view_content"
android:layout_width="match_parent"
android:layout_height="match_parent">

<fragment
android:id="@+id/fragment_pager"
android:name="com.example.ProductPagerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<android.support.v7.widget.Toolbar
android:id="@+id/product_details_toolbar"
style="@style/style.toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/double_height_toolbar"
android:minHeight="?attr/actionBarSize"
android:gravity="top"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >

<TextView
android:id="@+id/product_details_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:paddingTop="@dimen/padding_normal"
style="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse"
android:maxLines="2" />

</android.support.v7.widget.Toolbar>

有人有什么想法吗?这真的是违反 Android 指南的事情,以至于它应该如此困难吗?

更新:为演示目的添加图像:

它应该是怎样的:

How it should look

现在的样子:

How it does look

最佳答案

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(getResources().getString(R.string.myTitle));
toolbar.setSubtitle(getResources().getString(R.string.mySubTitle));
setSupportActionBar(toolbar);

教程:

ToolBar Example

Add Title, Subtitle, Color to Actionbar/Toolbar

关于标题中有两行的 Android 工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312106/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com