如何在不将AppTheme更改为自定义主题的情况下制作自定义标题栏?

时间:2013-09-19 15:22:42

标签: android android-layout android-theme titlebar app-themes

我不喜欢CustomTheme的样子,我想保留AppTheme。

但是当我使用AppTheme的自定义标题栏时,它崩溃告诉我我无法组合多种风格。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先为ActionBar创建自己的自定义布局

tab_header.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/header_title"
    android:textSize="18dp"
    android:layout_gravity="center"
    android:singleLine="true"
    android:maxLines="1"
    android:paddingLeft="@dimen/dim_10"
    android:paddingRight="@dimen/dim_10"
    android:textAllCaps="false"
    android:textColor="@color/white"
    />
   </LinearLayout>

然后在您的活动通话中(启用主页按钮)

    getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
    getActionBar().setCustomView(R.layout.tab_header);

    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);

没有主页按钮

    getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getActionBar().setCustomView(R.layout.tab_header);

    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);