Android:自定义标题栏

时间:2010-07-01 12:01:32

标签: android layout titlebar

我有自定义标题栏

 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
 setContentView(R.layout.activities);
 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

哪个工作基本上没问题。问题是,在调用上面的代码之前,会显示默认标题栏。我根本不想要一个标题栏,换句话说,在我出现之前不会出现任何标题。

将此添加到清单:

<application android:theme="@android:style/Theme.NoTitleBar">

导致力量关闭。我的清单看起来像这样

<application android:icon="@drawable/icon" android:label="@string/app_name"
    android:theme="@style/My_Theme">

我需要my_Theme,因为它设置了背景颜色,在我的客户主题中设置背景颜色会导致我的彩色背景周围的灰色区域。因此,即使没有力量关闭,我也不确定没有标题会有所帮助。

有什么想法吗?

感谢。

5 个答案:

答案 0 :(得分:14)

我和你有同样的问题。

问题在于你的风格。

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="My_Theme">
        <item name="android:windowTitleSize">35dp</item>
        <item name="android:windowTitleBackgroundStyle">@android:color/black</item>
    </style>
</resources>

答案 1 :(得分:2)

这是我唯一的一个,它会在启动自定义标题之前阻止默认标题:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="CustomWindowTitleStyle">
        <item name="android:textColor">@android:color/transparent</item>
    </style>

    <style name="CustomTheme" parent="@android:style/Theme.Holo">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowTitleBackgroundStyle">@android:color/transparent</item>
        <item name="android:windowTitleSize">50dp</item>
        <item name="android:windowTitleStyle">@style/CustomWindowTitleStyle</item>
    </style>

</resources>

答案 2 :(得分:0)

您还应该检查是否支持customTitle。

Boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);



if (customTitleSupported) {
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);

}

答案 3 :(得分:0)

第一件事,如果您的应用程序具有NoTitleBar,为什么还要使用自定义标题栏?太傻了!

不用说,这是您的问题,您必须删除该标志。

无论如何,添加自定义标题栏的最佳方法是仅在xml中。这样可以避免您的应用重复加载标题栏。哪些用户会看到。

../ res / styles.xml

<resources>

   <style name="AppTheme parent="@style/android:Theme.Light">
      <item name="android:windowNoTitle">false</item>
      <item name="android:windowTitleSize">30dp</item
      <item name="android:windowTitleStyle">@layout/custom_title</item>
   </style>

</resources>

然后,您不需要有关requestAnything的代码。

答案 4 :(得分:-1)

您的应用程序崩溃,因为在您的代码中,您从窗口功能调用标题栏,而在另一侧,您通过清单禁用它。基本上你不能这样做,它在逻辑上是不正确的。 您需要修改标题栏,不要将其删除。