【问题标题】:Android - how to display the Action Bar using the default Theme.LightAndroid - 如何使用默认 Theme.Light 显示操作栏
【发布时间】:2013-02-08 10:21:11
【问题描述】:

我想在我的一项活动中使用默认的 Android Theme.Light。 但是,当此特定主题应用于所选活动的我的应用程序清单文件时:

android:theme="@android:style/Theme.Light">

它隐藏了活动操作栏。

在 java 或 xml 代码中需要做什么来保留操作栏,使用这个特殊的 Light 方案?

作为替代方案,我使用了以下默认方案:

android:theme="@android:style/Theme.DeviceDefault.Light">

该方案确实正确显示了活动操作栏,但是它的某些对象未按首选显示。特别是,我的偏好是按照 Theme.Light 显示按钮和微调器,但保留 Theme.DeviceDefault.Light 提供的其他样式格式

我将非常感谢有关如何实现上述方案格式首选项的一些提示。 (我使用的是 SDK = 16)。

【问题讨论】:

    标签: android styles themes


    【解决方案1】:

    为什么不使用“android:style/Theme.Holo.Light”?是一样的,但有动作栏,它是在较新的 api 中添加的

    【讨论】:

    • 我已将样式更改为 Theme.Holo.Light 但我仍然不喜欢某些组件的显示方式,例如微调器。我更喜欢 .Light 方案中使用的较大字体和带有单选按钮的不同微调器类型。如何改变这一点,使用 Holo.Light 作为父方案?
    • 如果您想要旧控件,则更新组件,您必须执行自定义组件,无法查看旧 api 之类的控件。您可以创建一个具有微调器样式的按钮,并显示一个带有单选按钮的对话框。
    【解决方案2】:

    我认为你应该使用 Holo.Ligt 主题。旧的 android Theme.Light 甚至不知道操作栏。

    【讨论】:

      【解决方案3】:

      我有同样的问题,我喜欢 Theme.light 的控件,我是这样解决的:

      1) 在项目的样式中定义“Theme.Light.ActionBar”:

       <style name="Theme.Light.ActionBar" parent="@android:style/Theme.Light">
          <item name="android:windowNoTitle">false</item>
          <item name="android:windowActionBar">true</item>
      </style>
      

      2) 在清单中使用它:

      <activity
                  android:name="com.your.Activity"
                 android:theme="@style/Theme.Light.ActionBar" >
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多