问题标签 [android-toolbar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2121 浏览

android - 如何将主题/样式应用于 ActionMenuView?

我正在使用新的android.support.v7.widget.ActionMenuView(v7, r21) 来模拟我的应用程序中的拆分操作栏。我的顶部工具栏以 为主题ThemeOverlay.AppCompat.Dark.ActionBar,因此其文本和溢出图标显示为白色。但是 ActionMenuView 内容显示为黑色,有没有办法在那里应用主题,或者至少将选项项目文本着色为白色?

0 投票
2 回答
1170 浏览

android - 让导航抽屉滑到工具栏/操作栏下方

我一直在对我的应用程序进行材料设计大修。我很好奇您将如何更改 activity_main xml 代码以使导航抽屉滑动打开而不覆盖包含华丽的新切换按钮的工具栏。任何想法我怎么能做到这一点?

活动主:

0 投票
1 回答
1686 浏览

android - Android Lollipop 5.0 Toolbar 的正确样式

一段时间以来,我一直在努力解决这个问题,但没有任何运气。我android.support.v7.widget.Toolbar在我的应用程序(支持 Android API 11 及更高版本)中使用它,并希望对其进行样式设置。这是我的尝试方式:

我的活动布局 XML 包含:

res/values/attr.xml包含(这是我定义属性的地方):

res/values/Themes.xml

res/values/Styles.xml

res/values-v21/Themes.xml

res/values-v21/Styles.xml

这种安排适用于 Android API v11 到 v19。我对 v21 的问题(我也尝试了没有android:前缀的 2 和 3,结果相同):

1) android:background 工作正常!
2) android:colorPrimaryDark不起作用!
3) android:elevation适用于 theToolbarToolbar按钮的标题,如下所示。这是预期的吗?
在此处输入图像描述

我错过了什么?显然我没有以正确的方式进行造型,但找不到任何谈论toolbar造型的资源!

0 投票
4 回答
7955 浏览

android - AppCompat v7 工具栏向上/后退箭头不起作用

我在一个活动中有两个片段。当片段 A 显示时,我希望导航抽屉汉堡图标显示并且导航抽屉工作。当片段 B 显示时,我希望显示后退箭头,并在单击它时进行向上导航。但是,除非导航抽屉打开,否则我似乎无法让新的 AppCompat v7 工具栏在我的 ActionBarActivity 中显示向上箭头。

在我的活动中,对于我的 onCreate() 方法,我有...

然后我调用mDrawerToggle.syncState();我的 onPostCreate()

我尝试搜索如何以编程方式将工具栏图标触发到后退箭头,但没有任何效果。从我收集到的,呼唤

从我的片段应该改变图标,但事实并非如此。这可能是一个愚蠢的问题,但我做错了什么?

0 投票
2 回答
9525 浏览

android - 片段内容覆盖工具栏

我最近开始使用 AppCompat 21 的新组件并实现 Material Design。目前,我有一个带有工具栏的 ActionBarActivity 并试图让它托管一个包含 TextView 项目的 RecyclerView 的片段(只是为了测试 Recycler)。我有正在显示的项目,但是每个视图中的文本都被截断了,整个 Recycler 都覆盖了工具栏,如下所示:

此处描述

如您所见,共有三个 TextView。他们的文本被中途截断,并覆盖了工具栏(我不知道标题)。TextView 项目布局包含在 RecyclerView 布局中,这是 Fragment 的布局。父Activity有一个FrameLayout -> Toolbar,FrameLayout。我将 Fragment 插入到 Activity 的子 FrameLayout 中。这是 XML:

Recycler 中的每个视图:

Recycler布局,也就是Fragment的布局:

以及父 Activity 的布局:

我知道这一定很简单,但我已经被它难住了一段时间,尝试了各种方法都无济于事。

0 投票
1 回答
692 浏览

android - 更改选项卡时更改工具栏和选项卡背景

我有一个带有新工具栏(替换 ActionBar)和选项卡(当前使用PagerSlidingTabStrip)的应用程序。

我有 3 个选项卡,我想在更改选项卡时翻译颜色。例如,对于 tab1 有工具栏和标签显示 #ff0000,对于 tab2 #00ff00 和对于 tab3 #0000ff。

0 投票
2 回答
936 浏览

android - 使用 appcompat-v7 在 Android 中视频播放器熄灯模式

我正在将代码库从本机 Holo(Theme.Holo等)移植到appcompat-v7(等Theme.AppCompat)。如果您不想阅读详细信息,最后一部分包含tl;dr 。


问题

一切正常,但我在复制一种使用旧 ActionBar 很容易实现的行为时遇到了问题。我有一个视频播放器,在横向上我希望它的行为类似于 YouTube:隐藏(动画)播放器控件、应用栏和状态栏。在用户交互时,UI 控件应离开此“熄灯”模式并返回正常状态。如果用户在 X 秒内没有触摸屏幕,计时器将返回熄灯模式。与 ActionBar 一起工作的相同代码对Toolbar.

所以,我使用的是:

  • 不透明的状态栏
  • setSystemUiVisibility()使用以下组合之一:
    • 默认:View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    • 熄灯:View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  • minSdkVersion是 16
  • 显示和隐藏我简单调用的show()ActionBarhide()
  • 为了在应用栏上实现相同的行为,我子类化Toolbar并添加了一个show()和一个hide()执行相同操作的方法(首先简单地使用setVisibility(),然后使用动画 - 获得相同的结果)

这样LAYOUT_STABLE做是为了让 appbar 最终位于状态栏的后面,当然(因为它暗示了一个fitSystemWindows. 由于 appbar 是视图层次结构中的普通视图,并且不像 ActionBar 那样在装饰中,所以它受该标志的影响. 这就是我在屏幕上看到的:

状态栏后面的应用栏

无法立即清楚工具栏的边界是什么,因为应用程序栏在黑暗中是黑暗的,但您可以看到标题被剪切并且“未对齐”。这是因为工具栏的大小正确但位于状态栏后面。我的主要问题是当时没有公共 API 来获取状态栏高度、矩形或其他任何东西来垂直移动我的应用栏以显示在状态栏下方。

测试主要在 N5 上的 LPX13D(撰写本文时最新的 Lollipop 公共版本)上进行,但在 Android 4.4 上也可以看到同样的情况。


骇人听闻的解决方案

也就是说,经过相当长的一段时间和一些失败的尝试以一种不太老套的方式工作(包括相当绝望的尝试自己将其放入装饰中),我采用了这种令人讨厌的方式让它工作:

  1. onResume
    一个。setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE)即使我通常不会打电话(风景)
    b. 注册一个OnPreDrawListener

  2. OnPreDrawListener
    _ View root = getRootView().findViewById(R.id.my_root)
    使用b获取根视图。获取根视图高度:(int rootTop = getAbsoluteViewTop(root)见下文)
    c. 使用该顶部(将其作为状态栏高度)作为 appbar
    d 的 paddingTop。设置我通常使用的 SystemUiVisibility (LAYOUT_STABLE等)
    e。抑制绘图通道

  3. 在下一个绘图过程中,取消注册OnPreDrawListener

这是getAbsoluteViewTop()方法:


tl;博士和问题

tl; drToolbar :除非采用 hacky hack,否则无法使用a 进行适当的“熄灯”模式。

问题:是否有官方和干净的方式来实现这种熄灯模式Toolbar
我在文档中找不到任何内容。状态栏无法访问(并且您可以在 SO 上找到其大小的所有方法都已损坏,仅供参考)。但也许我错过了一些东西。我很想摆脱这个黑客。

0 投票
1 回答
17721 浏览

android - 将自定义布局添加到无边距的 ActionBar/Toolbar

我想创建一个自定义高度工具栏,它可以正常工作,直到我向其中添加内容。然后我的内容被调整到后退箭头和操作栏按钮之间。

如何使我的内容占据整个宽度,以便创建如下布局?我猜“+”图标需要在工具栏的父布局中?

文档说:

应用程序可以将任意子视图添加到工具栏。它们将出现在布局中的这个位置。如果子视图的 Toolbar.LayoutParams 指示重力值为 CENTER_HORIZONTAL,则在测量所有其他元素后,视图将尝试在工具栏中剩余的可用空间内居中。

但我没有将重力设置为 CENTER_HORIZONTAL ... 我想要的布局

目前,当左边距设置为 168 运行时,我的布局最终是这样的:

在此处输入图像描述 布局

0 投票
1 回答
1280 浏览

android - Android 5.0 工具栏片段回栈

我已经使用 appcompat 库中的新工具栏来替换操作栏,并按照人们可能期望的那样使用导航抽屉进行设置。

我的问题是按下后退会最小化应用程序,而不是循环通过后台堆栈。如果我手动添加逻辑以onBackPressed()弹出返回堆栈,这是一种解决方案,但会与导航抽屉当前选定的项目混淆。

activity_main.xml

MainActivity.java

0 投票
3 回答
2067 浏览

android - 清单中的 Android appcompact 工具栏标题

我在 FragmentActivity 的抽屉布局中使用 Appcompat 工具栏。每个fragmentActivity里面都需要根据activity改变title。有没有办法从 Manifest 设置标题,而不是在每个活动中设置 onCreate toolbar.setTitle("ABC")。

注意:我没有使用 getSupportActionBar(toolbar)

FirstActivity 扩展 BaseActivity

主题.xml

安卓清单

在 Base Activity 中初始化工具栏