首页 > 解决方案 > android 您不能将自定义标题与其他标题功能结合使用

问题描述

我正在使用 Android Studio 3.2 和 Android API 23 开发应用程序,当我尝试设置自定义标题栏时,它会显示错误You cannot combine custom titles with other title features。我用谷歌搜索错误并尝试一些答案,但它不能解决问题,我被卡住了。代码如下,

manifest代码:

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity" android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

样式:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="windowNoTitle">true</item>
        <!--<item name="windowActionBar">false</item>-->
    </style>


    <style name="TitleBarLayout" >
        <item name="android:background">@color/colorTitleBarBg</item>
        <item name="android:layout_height">@dimen/title_bar_height</item>
        <item name="android:layout_width">match_parent</item>
    </style>

    <style name="TitleBarTitle">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:color">@color/colorTitleBarTitle</item>
        <item name="android:layout_centerHorizontal">true</item>
        <item name="android:layout_centerVertical">true</item>
        <item name="android:text">@string/app_name</item>
        <item name="android:textSize">@dimen/title_bar_title_font_size</item>
        <item name="android:textStyle">bold</item>
    </style>

    <style name="TitleBarContactLayout">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:orientation">vertical</item>
        <item name="android:layout_alignParentRight">true</item>
        <item name="android:layout_centerHorizontal">true</item>
        <item name="android:layout_centerVertical">true</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_marginRight">10dp</item>
    </style>

    <style name="TitleBarContactIcon">
        <item name="android:layout_width">@dimen/title_bar_contact_icon_width</item>
        <item name="android:layout_height">@dimen/title_bar_contact_icon_height</item>
        <item name="android:src">@drawable/ic_contact</item>
    </style>

    <style name="TitleBarContactText">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:text">@string/title_bar_contact_text</item>
        <item name="android:textSize">@dimen/title_bar_contact_font_size</item>

        <item name="android:textStyle">bold</item>
    </style>

</resources>

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/titleBarContainer"
    style="@style/TitleBarLayout">
    <TextView
        android:id="@+id/TitleBarTitle"
        style="@style/TitleBarTitle" />

    <LinearLayout
        android:id="@+id/TitleBarContactContainer"
        style="@style/TitleBarContactLayout">

        <ImageView
            android:id="@+id/titleBarContactIcon"
            style="@style/TitleBarContactIcon" />
        <TextView
            android:id="@+id/TitleBarContactText"
            style="@style/TitleBarContactText" />
    </LinearLayout>
</RelativeLayout>

活动:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

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

        setContentView(R.layout.activity_main);

        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar_layout);
    }

标签: androidtitlebar

解决方案


推荐阅读