自定义标题栏未填满屏幕

时间:2013-11-14 04:42:50

标签: android android-titlebar

我的应用有自定义标题栏。



我编辑了values / styles.xml,使我的标题栏为45dp。 (下同)

<style name="AppBaseTheme" parent="android:Theme.Light">

    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->

</style>


<style name="CustomTheme" parent="AppTheme">
    <item name="android:windowTitleSize">45dp</item>
</style>



这是我自定义标题栏的布局(下方)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/background_gradient"
android:gravity="center_vertical" >

<ImageView 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:paddingLeft="7dp"
    android:src="@drawable/info_icon"
    android:layout_alignParentLeft="true" >
</ImageView>

<ImageView
    android:layout_height="wrap_content"
    android:paddingRight="7dp"
    android:layout_width="wrap_content"
    android:src="@drawable/info_icon"
    android:layout_alignParentRight="true"
>

</ImageView>

</RelativeLayout>



这是我为上面的RelativeView设置的背景颜色的可绘制

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

<gradient
    android:type="linear"
    android:centerX="49%"
    android:startColor="#FFFF6417"
    android:centerColor="#FFffffff"
    android:endColor="#FFFF7308"
    android:angle="315"/>

</shape>

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:type="linear" android:centerX="49%" android:startColor="#FFFF6417" android:centerColor="#FFffffff" android:endColor="#FFFF7308" android:angle="315"/> </shape>



Android清单文件:


在我正在执行的每项活动中

android:theme="@style/CustomTheme"

我相信我已经做好了一切。

但我得到了这个。我不知道为什么。

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:0)

尝试将此作为自定义标题栏的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" 
    android:background="@drawable/background_gradient">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/info_icon"
        android:src="@drawable/info_icon" >
    </ImageView>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/info_icon" >
    </ImageView>

</LinearLayout>

答案 1 :(得分:0)

您需要将actvity设为全屏,表示没有默认标题栏,然后设置自定义标题栏。通过这样做,灰色部分将被删除

 requestWindowFeature(Window.FEATURE_NO_TITLE);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.notice_main);

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_bar);

在此之后,您可以正确设置左右边距的填充

答案 2 :(得分:0)

最好在style.xml中创建以下代码

<style name="WindowTitleBackground">     
    <item name="android:background">@drawable/titlebar_backgrnd</item>   
</style>

以及在值

中的theme.xml中的以下代码
<style name="customTheme" parent="android:Theme">
    <item name="android:windowTitleSize">30dip</item> 
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
</style>