标签: android-theme

以编程方式创建的按钮不遵循主题的按钮样式

以编程方式创建的按钮不遵循应用程序主题中定义的按钮样式,但在 xml 中创建的按钮遵循它。

下面是我的 style.xml

    <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="buttonStyle">@style/Button.Primary</item>
    </style>

    <style name="Button.Primary" parent="Widget.AppCompat.Button.Colored">
        <item name="textAllCaps">true</item>
        <item name="android:textColor">#fff</item>
        <item name="backgroundTint">@color/btn_bck</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

这就是我以编程方式创建按钮的方法:

Button progBtn = new Button(this);
progBtn.setText("Programmatic button");
LinearLayout layout = findViewById(R.id.container);
layout.addView(progBtn);
Run Code Online (Sandbox Code Playgroud)

它显示为默认的灰色背景和黑色文本颜色。

但如果我在 xml 中使用按钮,例如:

<Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
Run Code Online (Sandbox Code Playgroud)

它工作正常,并以白色文本颜色和样式中指定的正确背景色调显示。

我想知道为什么上面两种创建按钮的方法,按钮样式不一致?

android button android-appcompat android-theme android-button

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

如何更改android studio的默认主题?

每次我转到 xml 文件时,我都必须先更改主题才能查看视图的实际外观,我的父主题继承自 MaterialComponents 主题,并且所有活动都使用相同的基本主题,但我仍然不这样做知道为什么在 xml 中它显示 Material.Light 作为我的默认主题。

在此输入图像描述

AppTheme 是我想设置为默认的主题,有什么办法可以做到这一点。

android android-layout android-theme android-studio

5
推荐指数
0
解决办法
1051
查看次数

Jetpack 撰写。强制切换夜间/非夜间资源

最初,我的应用程序的主题遵循系统的主题,为了方便起见,我为浅色和深色主题创建了可绘制资源。然后我实现了手动更改主题的功能,无论系统主题如何,但显然可绘制资源与系统主题或其他主题相关联。有没有办法以某种方式在夜间和非夜间可绘制资源之间强制切换?

android android-theme android-resources android-jetpack-compose

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

有没有办法根据应用程序主题更改启动屏幕之前的空白屏幕颜色?

我想根据应用程序主题更改空白屏幕背景颜色,例如。如果应用程序主题处于浅色模式,那么它应该带有白色背景。如果应用程序主题是深色主题,那么它应该带有黑色背景,它不应该基于设备主题。

提前致谢!!!

android splash-screen android-layout android-theme

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

Material 3materialThemeOverlay 生成没有主题的亮粉色按钮

我正在从 M2 迁移到 M3,但我的基本功能materialThemeOverlay不再起作用。我密切关注文档底部的代码,它与我对 M2 的代码非常匹配:

样式.xml

<style name="SecondaryThemeOverlay" parent="">
    <item name="colorPrimary">@color/md_theme_light_secondary</item>
    <item name="colorOnPrimary">@color/md_theme_light_onSecondary</item>
</style>

<style name="Widget.Button.Secondary" parent="Widget.Material3.Button">
    <item name="materialThemeOverlay">@style/SecondaryThemeOverlay</item>
</style>
Run Code Online (Sandbox Code Playgroud)

布局.xml:

<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Standard Button" />

<Button
  style="@style/Widget.Button.Secondary"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Standard Button Secondary" />
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

lib 版本是com.google.android.material:material:1.6.0-beta01,Activity 是 AppCompatActivity。

应用程序主题父级是Theme.Material3.DayNight.NoActionBar.

另请注意,设置backgroundTint效果很好。

android android-theme material-design material-components material-components-android

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

设置Theme.Holo.Light会更改除列表中的复选框之外的所有内容

<style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
Run Code Online (Sandbox Code Playgroud)

我制作了自己的主题,并在我的清单中添加了对它的引用.除了我的自定义列表中的复选框外,一切看起来都很完美(按钮,文本框等).

    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
Run Code Online (Sandbox Code Playgroud)

我的listitem中的复选框是Theme.Holo的默认复选框,我无法找出原因.

感谢任何帮助!

android android-theme

4
推荐指数
1
解决办法
4028
查看次数

如何在Android中保留4.1主题并删除TitleBar?

当我在Eclipse中创建新的Android应用程序时.其AndroidManifest.xml设置为application的主题是android:theme="@style/AppTheme"&style.xml如下.

   <resources>
       <style name="AppTheme" parent="android:Theme.Light" />
   </resources>
Run Code Online (Sandbox Code Playgroud)

我的屏幕显示如下. android:theme =

我想从应用程序中删除TitleBar,但想要显示Android 4.1的主题.

为此我试过了

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Light.NoTitleBar" >
Run Code Online (Sandbox Code Playgroud)

现在我的屏幕显示为这样,TitleBar被删除但主题已更改.

android:theme =

请帮我解决这个问题.

android android-theme android-4.2-jelly-bean

4
推荐指数
1
解决办法
4669
查看次数

layout_width和layout_height不适用于主题中的edittext

下面我在主题中添加了EditText样式.我添加了宽度和高度alos.所以我从我的edittext视图中删除了android:layout_width和android:layout_height.但这是错误的说法.如果我添加宽度和高度它工作正常.有什么不同.主题不适用于我的edittext视图吗?

<style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
        <item name="android:editTextStyle">@style/custom_EditTextStyle</item>
</style>
<style name="custom_EditTextStyle" parent="@android:style/Widget.EditText">
         <item name="android:background">@drawable/edittextbox</item>
         <item name="android:singleLine">true</item>
         <item name="android:layout_width">fill_parent</item>
         <item name="android:layout_height">48dp</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

我的editText视图

 <EditText android:hint="Username" />
Run Code Online (Sandbox Code Playgroud)

android android-layout android-theme android-styles

4
推荐指数
2
解决办法
2694
查看次数

什么属性控制Spinner下拉背景?

我有一个用这个生成器创建的自定义主题.它有一个我不喜欢的Spinners的自定义样式.我想改变背景drawable,但我似乎无法弄清楚哪个属性控制它.

这就是主题版本的样子

在此输入图像描述

这是使用Holo.Light主题时的样子.

在此输入图像描述

请注意第一个(主题)图像中下拉列表周围的深灰色线条.这就是我想要摆脱的.什么财产控制这个?我希望它们与默认值匹配.

什么控制下拉列表的垂直对齐?如您所见,它与第一张图像中的微调器重叠(它下面的线不可见,因为它在第二张图像中).

android android-layout android-theme android-spinner android-styles

4
推荐指数
1
解决办法
9903
查看次数

如何以编程方式将主题设置为android对话框?

我正在开发一个应用程序,其中我有共享和速率选项.当我点击这些选项时,我会触发一个处理进一步程序的Intent.我想要的是这些Intents打开的对话框有一些设备默认主题.这样不同设备的对话框就会显得不同.我还有一个设置对话框.如何将设备默认主题设置为此编程的自定义对话框?谢谢.

android dialog android-theme

4
推荐指数
1
解决办法
9791
查看次数