标签: android-theme

如何从库项目中引用应用程序主题属性?

我正在建立一个图书馆,并希望使其尽可能通用。

所以我想将textColora 的属性设置TextView为使用我的库的应用程序指定为它的primaryColor.

使用android:textColor="?colorPrimary"似乎给了我一种随机颜色,而不是我的测试应用程序中指定的颜色。这可能是因为它试图在库文件中查找该资源 ID,R.java而不是询问应用程序?

那么是否有可能引用库范围之外的颜色呢?我知道我可以通过引入自定义属性来解决此问题,但我想避免该解决方案,因为它要求库的用户更新其应用程序主题,并且它无法开箱即用。

android android-library android-theme android-styles

5
推荐指数
1
解决办法
1497
查看次数

AppCompat 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. -->
</style>
Run Code Online (Sandbox Code Playgroud)

我希望我的Toolbar主题是深色主题,所以我设置了以下样式,正如Chris Banes的建议:

<style name="Theme.MyTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <!-- stuff -->
</style>
Run Code Online (Sandbox Code Playgroud)

然后,通过添加android:theme="@style/Theme.ByodTheme.Toolbar"到 my android.support.v7.widget.Toolbar,一切都按预期工作(即使 Android Studio 预览不显示标题的白色,它也适用于设备):

主题的常规应用

现在,我不想在应用程序中指定每个工具栏,而是android:theme想在主主题中指定样式,然后忘记它。我已经尝试过该toolbarStyle属性,但看起来它没有按预期工作,因为它完全搞乱了标准属性:

尝试使用toolbarStyle

我还进行了其他尝试,通过使工具栏主题继承Widget.AppCompat.Toolbar,并通过更改titleTextAppearancesubtitleTextAppearance,但看起来不可能更改溢出图标颜色(是的,我尝试设置actionOverflowButtonStyle并继承该样式Widget.AppCompat.ActionButton.Overflow,但没有成功更改溢出图标颜色)。

有没有办法从一个点指定应用程序中每个工具栏的主题?

android android-appcompat android-theme material-design android-toolbar

5
推荐指数
1
解决办法
2079
查看次数

如何更改 edittext 文本选择手柄的颜色?

我知道这个问题已经得到解答,但我找不到有效的解决方案。

在 android > lolipop (21) 上,他们有什么方法可以改变我的文本选择手柄的颜色(无需上传新的 png 图像)?

我定义了这种风格

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <style name="AppEditTextStyle" parent="@android:style/Widget.Material.Light.EditText">
    <item name="android:background">@null</item>    
    <item name="android:textCursorDrawable">@null</item> 
    <item name="android:drawableTint">#00ffffff</item>           
  </style>

  <style name="AppTheme" parent="@android:style/Theme.Material.Light.NoActionBar"> 
    <item name="android:editTextStyle">@style/AppEditTextStyle</item>
  </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我收到:错误:找不到与给定名称匹配的资源:attr 'android:drawableTint'。

但在文档(https://developer.android.com/reference/android/widget/TextView.html#attr_android:drawableTint)中明确指出 android:drawableTint 存在:(所以我不明白为什么我错过了?

android android-theme android-edittext android-styles

5
推荐指数
1
解决办法
5849
查看次数

EditText - 以编程方式更改文本选择背景颜色

我正在研究适用于 Android 应用程序概念的动态主题。我正在以编程方式为所有 UI 应用主题颜色。我想以EditText编程方式更改选择背景颜色。在此处输入图片说明

任何帮助将非常感激。我想更改文本选择突出显示颜色。

user-interface android android-theme android-edittext android-view

5
推荐指数
1
解决办法
2264
查看次数

(AppCompat) 没有 UI 的活动

根据这篇文章,我知道我可以通过如下声明您的活动来创建一个没有用户界面的活动:

<activity
    android:name=".NoUIActivity"
    android:theme="@android:style/Theme.NoDisplay">
</activity>
Run Code Online (Sandbox Code Playgroud)

我的问题是 NoUIActivity 扩展了 AppCompatActivity。如果我使用android:theme上面的行,它会给我错误提示我应该使用相应的 AppCompat 主题。请帮忙。谢谢!

android android-theme android-activity

5
推荐指数
1
解决办法
1941
查看次数

不使用主题中声明的颜色强调的材料组件

我的主要应用主题父主题是 MaterialComponents 主题。我更改了颜色,但材质组件(MaterialButton、InputLayout、EditText)没有使用我的强调色(它们使用了一些蓝色,我声明的强调色是蓝绿色)有什么问题?处理主题化材质组件的最佳方法是什么?

我的主题:

    <style name="AppTheme" parent="Theme.MaterialComponents">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

编辑:将主题更改为 Theme.MaterialComponents.Bridge 并不能解决该问题。

android android-theme android-styles material-components

5
推荐指数
1
解决办法
3447
查看次数

在启动画面中心裁剪中制作背景图像

我使用图像作为斜线屏幕的图片。

<style name="AppTheme.Launcher">
        <item name="android:windowBackground">@drawable/splash_screen</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然而,在一些不同的设备中,它被拉伸和扭曲。有没有办法像在 ImageView 中那样制作照片中心裁剪?

android android-xml android-theme

5
推荐指数
1
解决办法
5466
查看次数

FAB 的颜色什么时候依赖于 colorAccent?

根据doc,视图的颜色默认为我们主题的colorAccent. 我尝试更改colorAccent我的样式资源文件,但没有任何反应:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="colorAccent">#d81b60</item>
</style>
Run Code Online (Sandbox Code Playgroud)

所以我尝试改变colorSecondary

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="colorSecondary">#d81b60</item>
</style>
Run Code Online (Sandbox Code Playgroud)

它奏效了。所以我的问题是它真的取决于colorAccent吗?如果是,什么时候?

android android-theme android-studio floating-action-button material-components-android

5
推荐指数
1
解决办法
413
查看次数

android - 更改 MaterialToolbar 菜单项图标颜色

我目前正在创建一个应用程序,它有一个MaterialToolbar小部件。我想将图标颜色设置为白色。我尝试按照这个问题中接受的答案进行操作,但是,它不起作用。添加colorControlNormalstyles.xml 不起作用。

这是我的 MaterialToolbar xml 代码:

<com.google.android.material.appbar.MaterialToolbar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/topToolbar"
            android:background="@color/colorPrimaryDark"
            app:title="Revo"
            app:titleTextColor="@android:color/white"
            app:menu="@menu/menu_floatingsearchview"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
Run Code Online (Sandbox Code Playgroud)

我能做什么?

编辑、解决方案和说明

谢谢大家的好答案。我设法找到了一个解决方案,其中包括两个解决方案和另一个问题。

这个问题中,被问到为什么colorControlNormal不起作用。接受的答案说,在向量行中,您必须更改给 的值android:fillColor,并将其替换为?attr/colorControlNormal。执行此技巧,项目 colorControlNormal,将控制所需的图标颜色。

在应用样式中,您需要放置:

<item name="colorControlNormal">@android:color/white</item>

然后,在所需的图标中,您需要放置在path

android:fillColor="?attr/colorControlNormal"

就是这样!现在图标将获得赋予 colorControlNormal 属性的颜色!

android android-xml android-theme android-toolbar material-components-android

5
推荐指数
1
解决办法
2971
查看次数

Android - theme.xml 和 theme.xml(night)

在较新版本的 Android Studio 中,在 values 目录中有 theme.xml 和 theme.xml(night) 可以指出它们之间的区别吗??它会取代styles.xml 吗??

java android android-theme android-night-mode android-dark-theme

5
推荐指数
2
解决办法
3856
查看次数