android - 如何将多个主题属性添加到 Android Manifest 上的同一个 Activity ?

标签 android coding-style themes android-manifest

我有一个 android list ,其中包含一个我想应用于样式的 Activity :

 <activity android:label="@string/app_name" android:name="Language" android:theme="@android:style/Theme.NoTitleBar>

是现在的样子,但在保留 NoTitleBar 属性的同时,我还想添加此属性:

android:style/Theme.Light"

但我对 Android 太陌生了,我搞不懂。

请帮忙!

最佳答案

您不能在您的 list 中一次应用多个主题。

我相信有一个主题 Theme.Light.NoTitleBar 可以满足您的需求 - 但我将在下面向您展示如何轻松地自己执行此操作并进行更多自定义。

您需要做的是创建一个主题,将 Theme.NoTitleBarTheme.Light 作为父主题,并自定义您想要的位 — 在本例中最简单的方法是创建一个以 Theme.Light 作为父主题的主题,然后隐藏标题栏(而不是将 Theme.NoTitleBar 作为父主题,然后必须让一切变得轻盈,这要困难得多!)。

您可以在 values 文件夹中的 themes.xml 文件中使用以下代码执行此操作:

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

    <!-- use the Android Light theme as the base for our own theme -->
    <style name="MySuperTheme" parent="@android:style/Theme.Light">

        <!-- hide the Window Title -->
        <item name="android:windowNoTitle">true</item>

        <!-- You could change the scrollbar, checkbox style, anything! -->
    </style>

</resources>

然后将 android:theme="@style/MySuperTheme" 用于您的 Activity (或者您甚至可以通过将其放置在应用程序元素上将其应用于整个应用程序——如果您应用样式到单个 Activity ,并为整个应用程序设置一组,然后单个 Activity 的样式将显示为该样式)。

看看 Android themes.xml获取您可以在自己的主题中自定义的所有内容的列表。

您还可以查看所有 Android styles看看它们是如何完成的。

关于android - 如何将多个主题属性添加到 Android Manifest 上的同一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998565/

相关文章:

android - 为什么 android 文档要我将播放服务作为项目而不是库导入?

c# - 为什么要在 setter 之前定义 getter(编码约定)

plugins - Wordpress:从主题访问插件的功能

android - 当我单击编辑它时,我的文本字段隐藏在 BottomNavigationBar 的键盘后面

android - 将 ListFragment 与带有 Holder 模式的 SimpleCursorAdapter 结合使用

android - 必须引用包含私钥和相应公钥证书链的有效 KeyStore key 条目

c++ - 写得很好的 C++ 例子

javascript - 三元运算的值范围在负值和正值范围内直到 0?

android - ActionBarSherlock:在极少数设备上出现 java.lang.IllegalStateException

php - Symfony2 - 多种形式的主题