1.对指定的android activity设置自定义主题风格,其中自定义主题风格是关键,在android 4.0以上版本中如果使用Theme.Holo或者Theme.Light等,程序会一直报错误-you cannot combine custom title with other
feature titles。
2. 在对应的Activity中加入代码
super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.mycustomtitle);
3.在styles.xml使用如下的自定义主题,发现只有使用这个默认主题才不出第一步的
错误
4. 使用RelativeLayout来对齐自定义Title的组件
二:测试MainActivity源代码
package com.gloomyfish.titledemo;import android.app.Activity;import android.os.Bundle;import android.view.Window;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.mycustomtitle); } }
三:XML资源文件
mycustomtitle.xml:
最后别忘记在androi的manifest配置文件中加上自定义的主题:
android:theme="@style/MyTheme"
同时还要删除IDE默认生成的那些appTheme,不然也会一直报错!
最终效果如下:
实现这个自定义标题栏的时候,看到stackoverflow上面说
如果使用Theme.Holo一定要换成Theme.Holo.NoActionBar主题
可以我换了以后发现,一直不出效果。
所以我推荐一定要使用android:theme