为了实现是定义title,我们会加上
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)和
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title)这两句代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_order_scan);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title);
title.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/colorPrimary"
android:gravity="center_vertical">
<ImageButton
android:id="@+id/btnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/back_icon"
/>
<TextView
android:id="@+id/lblTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="20sp"
android:layout_marginLeft="80dip"
android:textColor="#ffffff"
/>
<ImageButton
android:id="@+id/btnGetScanRecord"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:background="@mipmap/ic_scan_record"
android:layout_marginLeft="100dp"
android:text="扫描记录"/>
</LinearLayout>
如果出现如下异常:
android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
解决方案:
1、不能用默认主题,需要自定义
2、将默认的主题AppTheme改成自定义主题
注意:自定义主题parent必须"Theme.AppCompat"开头,否则仍然报上面的错。我这里选择"Theme.AppCompat.Light.NoActionBar",如果不带"NoActionBar"的主题自定义title和默认的title都会显示。所以要选一款带"NoActionBar"的主题
3、在主题中将
android:windowNoTitle、android:windowActionBar、android:windowActionBarOverlay这三项都设置false
<style name="title_style" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowActionBarOverlay">false</item>
<item name="android:windowTitleSize">44dip</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
</style>