标签: android-styles

@android:color/holo_blue_light需要API级别14 - 以前就可以了

我有android : minSdkVersion="11" android:targetSdkVersion="11".

在我的主题中,我使用了引用 @android:color/holo_blue_light

直到现在(在几个月内)它完全没问题.现在,我在一个地方已经改变@android:color/holo_blue_light,以@android:color/background_dark和suddently在我所有的地方holo_blue_light我有一个错误:

@android:color/holo_blue_light requires API level 14 (current min is 11)        Android Lint Problem
Run Code Online (Sandbox Code Playgroud)

他们是否在sdk中改变了一些东西?即使我手动返回到以前版本的文件,holo_blue_light只有我仍然有相同的错误.(当然,Eclipse的最新定义是由Internet自动下载的.并且它可以在几个月内使用sdk 11作为最低要求).

有帮助吗?是不是任何sdk问题而不是我的应用程序问题?

eclipse sdk android android-theme android-styles

2
推荐指数
1
解决办法
3899
查看次数

更改appcompat的操作栏菜单所选文本颜色

尝试使用android-support-v7-appcompat设置动作栏文本颜色时遇到了很多麻烦.我能够将选择器颜色从默认颜色更改为浅灰色,但是现在当我选择文本颜色也会改变时.我希望用户进行选择时文本颜色保持黑色.有任何想法吗?谢谢!

文字颜色需要保持黑色

android android-actionbar android-styles android-actionbar-compat

2
推荐指数
1
解决办法
4804
查看次数

如何在spannable中的2行之间添加边距或填充?

我使用spannable在2行中创建一个字符串,其中每行有不同的字体.
除了一件事,它工作正常.
如何在第一个字符串和第二个字符串之间添加一些边距?

所以我这样做:

String a = "First line";  
String b = "Second line";  
SpannableString spannableName = new SpannableString(a + "\n" + b);  
spannableName.setSpan(new TextAppearanceSpan(activity, R.style.my_style),0,a.length(), 0);  
Run Code Online (Sandbox Code Playgroud)

和my_style

<style name="my_style">
        <item name="android:layout_marginBottom">100dp</item>
        <item name="android:paddingBottom">10dp</item>
        <item name="android:textSize">@dimen/size</item>
        <item name="android:textColor">@color/mycolor</item>
    </style>  
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我希望在a和之间有一些填充/边距b.
我的风格中的填充/边距很大,因为我不确定它们是否被应用(测试数字)

android android-layout spannablestring android-styles

2
推荐指数
1
解决办法
2190
查看次数

为什么android:buttonStyle没有样式按钮?

所以,我有这个奇怪的问题:我的应用程序非常简单,主要活动只有一个按钮和清单中设置的活动的自定义主题.

我可以确认主题是否有效并且被选中,因为我可以更改活动背景或字体颜色,例如

但是,当我尝试在我的活动上设置所有按钮的样式时,它不起作用!

这是我使用的styles.xml代码:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:background">#0f0</item>
        <item name="android:buttonStyle">@style/btxs</item>
    </style>

    <style name="btxs" parent="@android:style/Widget.Button">
        <item name="android:textColor">#f00</item>
    </style>

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

活动背景为绿色(主题有效),但按钮仍然是默认值.

是android:buttonStyle在主题设置按钮样式的正确方法是什么?

作为参考,我也粘贴了我的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_below="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:layout_marginTop="25dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android android-theme android-styles

2
推荐指数
1
解决办法
1914
查看次数

从应用程序类获取主题属性

我一直在使用一种方法从当前获取颜色属性Context:

public static int getColorAttribute(Context context, @AttrRes int attr) {
    final TypedValue value = new TypedValue();
    context.getTheme().resolveAttribute(attr, value, true);
    return value.data;
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是当我尝试在扩展Application它的类中使用它时,它返回0. 在大多数情况下,我会像这样调用方法:

int colorAccent = Util.getColorAttribute(this, R.attr.colorAccent);
Run Code Online (Sandbox Code Playgroud)

这将返回"colorAccent"我集themes.xml作为我AppTheme在我的清单。但是在Application课堂上我不得不调用getApplicationContext()而不是this. 因此,我也将方法的其他实例之一切换到了ActivitytogetApplicationContext()中,它返回了0. 我也尝试过getApplication(),getBaseContext()结果相同。

我想知道是否有办法从类中的应用程序主题中获取颜色Application。或者如果没有,为什么getApplicationContext().getTheme()似乎没有返回应用程序主题。

java android android-theme android-styles android-attributes

2
推荐指数
1
解决办法
1782
查看次数

getTheme().applyStyle(...) 多次而不覆盖前一个

当我多次将额外的属性应用到 AppTheme 时,它​​会覆盖前一个属性。这是我正在使用的代码:

主要活动:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {

    getTheme().applyStyle(R.style.AppTheme_OverlayPrimaryRed);

    // If you change `false` to `true`, the overlay above is overwritten.
    if (false) {
        getTheme().applyStyle(R.style.AppTheme_OverlayAccentRed);
    }

    super.onCreate(savedInstanceState);

    ...
}
Run Code Online (Sandbox Code Playgroud)

AppTheme.OverlayPrimaryRed:

<style name="AppTheme.OverlayPrimaryRed">
    <item name="colorPrimary">@color/material_red_500</item>
    <item name="colorPrimaryDark">@color/material_red_700</item>
</style>
Run Code Online (Sandbox Code Playgroud)

AppTheme.OverlayAccentRed:

<style name="AppTheme.OverlayAccentRed">
    <item name="colorAccent">@color/material_red_A200</item>
</style>
Run Code Online (Sandbox Code Playgroud)

有什么想法可以解决这个问题吗?

android android-xml android-theme android-activity android-styles

2
推荐指数
1
解决办法
2650
查看次数

如何更改 ListPreference 按钮颜色?

我使用波纹管样式将对话框背景颜色更改为深色,在我使用的首选项页面中ListPreference,应用此样式后,cancelListPreference 的按钮在对话框背景中消失了。

<style name="AppThemeBase" parent="Theme.MaterialComponents.DayNight">
    <item name="colorPrimary">#212D3B</item>
    <item name="colorPrimaryDark">#172331</item>
    <item name="colorAccent">#61A3D7</item>
    <item name="android:textColorPrimary">#FFFFFF</item>
    <item name="android:dialogTheme">@style/AppTheme.Dialog</item>
    <item name="android:alertDialogTheme">@style/AppTheme.Dialog</item>
</style>

<style name="AppTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:background">#212D3B</item>
    <item name="colorPrimary">#61A3D7</item>
    <item name="colorPrimaryDark">#8DB2D3</item>
    <item name="colorAccent">#61A3D7</item>
</style>
Run Code Online (Sandbox Code Playgroud)

有没有办法改变这个按钮的颜色?

列表首选项

android listpreference android-styles material-components-android

2
推荐指数
1
解决办法
745
查看次数

SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR 不适用于 API 28

我有一个问题,SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR不知何故无法工作,但SYSTEM_UI_FLAG_LIGHT_STATUS_BAR正在工作。我目前正在使用 Android API 28。

那么发生了什么?在 API 23 及以下版本上,我按预期获得半透明状态栏和导航栏。在 API 23 和 API API 26 之间,我按预期获得了半透明的导航栏和灯光模式状态栏。但是在 API 27 及更高版本上,我获得了 Light Mode Status Bar 而不是 Light Mode Navigation Bar。它只是普通的黑色,没有任何变化。

这是我的 MainActivity 和我的代码,用于根据 Android API 级别启用半透明或浅色模式状态栏和导航栏(注意我的评论描述了哪些有效,哪些无效):

View decorView = getWindow().getDecorView();
Window win = getWindow();

//Setup Status Bar and Nav Bar white if supported
if(Build.VERSION.SDK_INT >= 27) {
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);// <- works not
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); // <- works
}
else if (Build.VERSION.SDK_INT >= 23 && Build.VERSION.SDK_INT < 27) {
    //this here works …
Run Code Online (Sandbox Code Playgroud)

android android-theme android-styles android-navigation-bar

2
推荐指数
1
解决办法
3996
查看次数

如何更改导航图标颜色

我的应用程序中有一个导航视图,在应用程序样式中添加两行之后:

<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
Run Code Online (Sandbox Code Playgroud)

导航图标颜色更改为黑色,对于这个问题,我在样式中添加了以下行:

<item name="android:textColorSecondary">@android:color/white</item>
Run Code Online (Sandbox Code Playgroud)

现在导航图标又是白色的,但现在我有一个新问题。使用上面的代码,导航项的标题也改变了颜色。

我没有找到解决此干扰的方法

风格 :

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:textColorSecondary">@android:color/white</item>

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

导航菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">

    <group
        android:id="@+id/testGRP"
        android:checkableBehavior="single"
        >
    <item android:title="???? : ?????? ????"
        android:id="@+id/menuItem_StudentList11"
        android:icon="@drawable/ic_arrow_drop_up"
        />

    <item android:title="???? ????"
        android:id="@+id/menuItem_StudentList_Quize1"
        android:icon="@drawable/all_exam_icon"
        />

        <item android:title="@string/Navigation_StudentList3"
            android:id="@+id/menuItem_StudentList_Quize"
            android:icon="@drawable/all_exam_icon"
            />

    </group>


    <item android:title="????????:"> //this line is title

    <menu>

    <item android:title="@string/Navigation_StudentList4"
        android:id="@+id/menuItem_StudentList_MidTerm"
        android:icon="@drawable/all_exam_icon"
        /> …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-styles android-toolbar android-navigationview

2
推荐指数
1
解决办法
2160
查看次数

夜间模式颜色不适用于回收站视图背景

我想为我的 android 应用程序实现夜间模式,所以我使用 Theme.AppCompat.DayNight 主题来实现夜间模式。但是我必须在夜间模式下自定义工具栏和回收站视图的颜色。

为此,我在 attrs.xml 文件中声明了该属性,并在 recyclerview 中使用该属性作为背景。

这是 attrs.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="ds">
        <attr name="rv_color" format="color"/>
    </declare-styleable>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是回收站视图

 <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/rv_color"
        android:overScrollMode="never"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">
Run Code Online (Sandbox Code Playgroud)

现在对于样式,我已经为夜间模式声明了styles.xml 和styles.xml(夜间)。

这是styles.xml

<style name="AppTheme" parent="Theme.AppCompat.DayNight">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@android:color/white</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:textColorPrimary">@color/colorPrimary</item>
    <item name="android:windowDisablePreview">false</item>
    <item name="rv_color">#FF0000</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是styles.xml(晚上)

<style name="AppTheme" parent="Theme.AppCompat.DayNight">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@android:color/white</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item …
Run Code Online (Sandbox Code Playgroud)

android android-styles android-recyclerview android-night-mode android-dark-theme

2
推荐指数
1
解决办法
1558
查看次数