- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个“轻”主题的应用程序:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<!-- etc. -->
</style>
我希望我的 Toolbar
是深色主题的,所以我设置了以下样式,正如 Chris Banes 所建议的那样:
<style name="Theme.MyTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- stuff -->
</style>
然后,通过将 android:theme="@style/Theme.ByodTheme.Toolbar"
添加到我的 android.support.v7.widget.Toolbar
,一切正常预期(即使 Android Studio 预览不显示标题的白色,它适用于设备):
现在,我不想为我的应用程序中的每个工具栏指定 android:theme
,而是想在我的主主题中指定样式并忘记它。我已经尝试了 toolbarStyle
属性,但它似乎没有按预期工作,因为它完全扰乱了标准属性:
我还做了其他尝试,使工具栏主题继承自 Widget.AppCompat.Toolbar
,并更改 titleTextAppearance
和 subtitleTextAppearance
,但是似乎无法更改溢出图标的颜色(是的,我尝试设置 actionOverflowButtonStyle
并从 Widget.AppCompat.ActionButton.Overflow
继承该样式,但没有成功改变溢出图标颜色)。
有没有办法从一个点为我的应用程序中的每个工具栏指定主题?
最佳答案
您可以为此使用自定义属性——基本上只需将您的工具栏设置为使用您将在主题中定义的自定义值。
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="?attr/toolbar_theme"
/>
重要的部分是 android:theme="?attr/toolbar_theme"
,它引用了当前主题的自定义属性。
您需要在某处声明此属性,如下所示:
<resources>
<attr name="toolbar_theme" format="reference" />
</resources>
然后您可以通过为主题中的 toolbar_theme
赋值来定义您希望工具栏使用的值。例如,要使其使用 Theme.MyTheme.Toolbar
,您可以这样定义它:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<!-- etc. -->
<item name="toolbar_theme">@style/Theme.MyTheme.Toolbar</item>
</style>
使用属性的好处在于它可以让您的应用拥有多个主题,并且该单个工具栏资源将使用您在主题中设置的任何值。
关于android - AppCompat 工具栏 : set toolbar theme from upper theme,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30235673/
所以我在 macOS High Sierra 10.13.6 下使用 bash 3.2.57(1)-release,我正在尝试编写一个需要不区分大小写输入的 bash 脚本。我使用 tr "[:upp
为什么df.apply(df.str.upper)中的upper不需要括号,但是upper()方法在 df.str.upper() 中需要它们吗? 有什么我想念的概念吗? 最佳答案 () 的意思是“现
我想删除 hql 中使用的 upper 函数并在 java 端创建 upper。以下是查询:- String hql = "SELECT addType FROM addrDO WHERE **UPP
这个问题在这里已经有了答案: Why doesn't calling a string method (such as .replace or .strip) modify (mutate) the
我想知道 css list-style 中的 upper-alpha 和 upper-latin 有什么区别? 最佳答案 主要区别是 IE6 或 IE7 不支持 upper-latin 而 upper
#include #include #include int main(void) { char input[50]; char i; int j = 0; pr
对于 MATLAB 中的箱线图,我想问一下是否可以使用特定的百分位数作为上须线。我想使用第 95 个百分位作为上部晶须,第 5 个百分位作为下部晶须。 MATLAB 的默认行为是使晶须长度 = 1.5
我真的不知道如何解决这个问题(错误:不兼容的类型:推断的类型不符合推断的上限:INT#1 上限:Giocatore[],Parcelable where INT# 1 是交集类型:INT#1 exte
我正在尝试以全大写字母打印一个字符串。当我运行 print 命令时,它会打印 x 的类型和位置。 为什么打印的是操作而不是结果? x = 'bacon' x = x.upper print x >>>
我是初学者所以请原谅我这个问题。我想编写放大字符之间字母的程序 "" 例如输入: randomchars 输出: randomchars 怎么做? 我只写了这个,但这放大了所有文字。 whil
我试图在 lua 中将一些法语文本转换为大写,它没有转换重音字符。知道为什么吗? 测试脚本: print('échelle') print(string.upper('échelle')) print
我有一个脚本,其中包含一个使用回调返回状态的函数,并且我必须将其是否成功提交给类变量。我无法使用 this 来访问它,因为它不在范围内。我无法发布我的确切代码的代码片段,但以下内容应该说明我的问题 v
我正在尝试查询一个值为 ONeil 的 SQL Server 表。我的目标是在查询的数据中添加撇号。我知道从源头(在 PHP 中)解决问题会更容易,但无法访问这些脚本 表结构, ID Fir
有没有办法将 UPPER 与 LIKE ANY() 一起使用? 我有以下示例: SELECT .... where skus.number like any ('{"%00130204%", "%00
您好,我正在处理 Kaggle Titanic 数据。我使用 apply(lambda x: x.upper()) 来处理多个列,但它不起作用。 我把数据放在我的谷歌驱动器上,你可以下载here .
其实这个问题问了好几次,但我没能找到答案。 有一组只读的 SQLite 表 - 我无法更改它们的结构或重新定义排序规则。包含一些国际字符(俄语/中文等)的表格。 我想要一些不区分大小写的选择,例如:
#input my_string = 'abcdefgABCDEFGHIJKLMNOP' 如何从字符串中提取所有 UPPER? #output my_upper = 'ABCDEFGHIJKLMNOP
想了一会儿,为了WHERE要正确评估标准,我需要考虑区分大小写。我会用 UPPER()和 LOWER()当案例无关紧要时。但是,我发现以下查询产生相同的结果。 SELECT * FROM ATable
我正在尝试实现如下查询 SELECT * FROM emp WHERE LOWER (ename) IN LOWER ('A', 'b', 'C'
我是 PL/SQL 语言的新手。我看到 PL/SQL 中有 2 个函数:UPPER和 NLS_UPPER .他们都做同样的事情。我想知道这些功能之间的区别。谢谢 最佳答案 NLS_UPPER了解特定于
我是一名优秀的程序员,十分优秀!