- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想覆盖 v14 PreferenceFragmentCompat 使用的 accentColor。
我在我的 Android 应用的外框上使用了粉红色强调色。这在许多情况下都会产生问题,因为它会导致标准控件使用足够接近红色的强调色,以至于效果令人不安。不管怎样,我喜欢框架上有粉红色 FAB 和按钮控件的效果。
对于 child Activity ,我使用带有标准蓝绿色强调色的它们。但是,我在主要 Activity 的抽屉中有一个 PreferenceFragment compat,我无法弄清楚如何覆盖主要 Activity 的强调色。
我尝试过的方法(都不起作用):
在接收 PreferenceFragmentCompat 的 fragment 框架上设置主题(不起作用):
<FrameLayout android:id="@+id/preferenceFragmentFrame"
android:layout_width="match_parent" android:layout_height="0dp"
android:layout_weight="1"
android:theme="@style/AppTheme.TealAccentColor"
/>
AppTheme.TealAccentColor 样式提供明确的蓝绿色 acccentColor。
在偏好主题中设置 accentColor(不起作用):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="preferenceTheme">@style/MyPreferenceThemeOverlay</item>
</style>
<style name=MyPreferenceThemeOverlay parent="PreferenceThemeOverlay.v14.Material>
<item name="colorAccent">@color/colorAccentTeal</item>
</style>
向 preference-v14 的 PreferenceThemeOverlay 添加强调色(不起作用):
<!-- use the library's theme-->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="preferenceTheme">PreferenceThemeOverlay.v14.Material</item>
</style>
<!-- but add an accentColor item to the library's theme -->
<style name="PreferenceThemeOverlay.v14">
<item name="colorAccent">@color/colorAccentTeal</item>
</style>
无论我做什么,PreferenceFragmentCompat 似乎都采用了 Activity 主题中的粉色强调色。
我确定这与 Activity 的主题和 Fragment 的主题之间的脱节有关。但是 fragment 没有 xml 元素,因为 PreferenceFragmentCompat 提供了自己的布局。
也许有一种方法可以通过在扩展 PreferenceFragmentCompat 的类中进行重写以编程方式完成此操作,但如果有的话,我无法想象它会是什么。我能想到的大多数攻击点要么可以访问内部创建的布局,要么可以在布局创建后访问,但为时已晚。
图片可能有帮助:
最佳答案
您是否尝试过覆盖 android:colorAccent
而不是 colorAccent
?
使用您描述为“在首选项主题中设置 accentColor”的方法,只需更改属性名称即可。
偏好支持库根本没有考虑 appcompat,所以
color*
属性只适用于 API 21,我认为如果你想要一致的行为,你可以使用 my library Android Support Preference旨在连接首选项和 appcompat 支持库。
然后您使用 colorAccent
(无前缀)的原始样式将按预期工作。
关于android - 如何设置 PreferenceFragmentCompat accentColor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33901470/
问题是如何与其他嵌套的 PreferenceFragmentCompat 构建 PreferenceFragmentCompat。 主要 Activity : public class MainAct
我尝试为我的 Android 应用程序创建一个设置 Activity ,但是当我单击应该打开设置 Activity 的按钮时,我收到以下错误,并且我的应用程序返回到我的主要 Activity 。 错误
我正在使用 PreferenceFragmentCompat 创建一个设置屏幕,我想在用户上下滚动时执行一些功能,因此我需要检测用户滚动,我如何才能听到偏好屏幕滚动?下面是我的布局代码
我正在尝试使用 PreferenceFragmentCompat 设置我的 SettingsFragment 但 android studio 给出一个错误,即无法解析符号 PreferenceFra
我创建了一个 PreferenceFragmentCompat 设置,一切正常,但我注意到有些奇怪,当加载首选项屏幕时第一次单击设置按钮,我触摸了一些首选项,但它没有响应我的第一次触摸,但是正常工作后
我正在使用 PreferenceFragmentCompat(来自 'com.android.support:preference-v7:28.0.0-rc02')来创 build 置菜单。 问题是我
我需要帮助来解决 PreferenceFragmentCompat 的问题,该问题根本不显示,控制台中没有错误,没有消息,什么也没有,只是一个空白页面。 该 fragment 显示为在抽屉导航中选择元
我用 ViewPager 创建了一个应用程序。当我进行调试构建并在手机上进行测试时,一切正常。 (不是模拟器)但是当我构建一个发布 .apk 并安装它时,PreferenceFragmentCompa
在我的 Android 应用程序中,我定义了一个非常基本的 PreferenceScreen: 并实现了相应的PreferenceFragmentCompat类: class
我需要为我的 PreferenceFragmentCompat 自定义布局。在 PreferenceFragmentCompat 的文档中看来您可以在 onCreateView() 中膨胀并返回一个
我正在尝试将 EditTextPreference 的值放入摘要中。有人可以告诉我该怎么做吗?我的 OnSharedPreferenceChangeListener 似乎不起作用。 import an
我正在尝试创建一个扩展 AppCompatActivity 并在其中有两个 fragment 的 Activity(一个在另一个之下 - 只需使用 LinearLayout)。我希望第一个 fragm
我用的是androidx。在设置 fragment 中,我想创建“首选项”按钮并单击它们以触发一些单独的事件。 如何在特定首选项上实现点击监听器? 这是我的一些代码: import android.o
我创建了一个具有自定义 ImageView 布局的首选项,如下所示: 我的布局是这样的: 但我不知道如何获取对它的引用。我试图通过这样做将它放在 onCreateView 方法中: @Overr
我正在使用支持库中的 PreferenceFragmentCompat(preference-v14:23.0.1 - 虽然我也尝试过使用 23.1.1)。我将所有偏好设置都放在一个 XML 文件中,
我创建了一个首选项屏幕并在扩展 PreferenceFragmentCompat 的类中进行了膨胀。但是偏好项之间的分隔线没有显示 最佳答案 如果使用 AndroidX,请将以下属性添加到 XML 中
标题说明了一切:如何设置 PreferenceFragmentCompat 的样式。我的 v14/style.xml 是 @style/Widget.EditText.W
我正在使用 PreferenceFragmentCompat,但我认为它的样式不正确。 Preferences 的标题似乎太大了,PreferenceCategory 文本不可读,整个想法似乎不对。
我正在覆盖 v7 支持库中的 PreferenceFragmentCompat 类,以便在我的应用程序中提供设置屏幕。我需要在 PreferenceScreen 中设置项目的文本颜色。 这是我尝试过的
我想覆盖 v14 PreferenceFragmentCompat 使用的 accentColor。 我在我的 Android 应用的外框上使用了粉红色强调色。这在许多情况下都会产生问题,因为它会导致
我是一名优秀的程序员,十分优秀!