Android使用CustomTitle定制标题栏4.0以上的解决办法

本文介绍了在Android 4.0以上系统中去除默认标题栏并使用CustomTitle进行定制的方法。通过修改theme去除标题栏,并在activity中添加自定义布局。需要注意的是,自定义标题栏内的控件只能在activity中访问,而不能从fragment直接获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

</pre><pre name="code" class="html"><!--Atomu's theme-->
    <style name="AppThemeWithCustomTitle" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:headerBackground">@color/blue</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowTitleSize">50dp</item>
        <item name="android:windowTitleBackgroundStyle">@style/TitleBarStyle</item>
    </style>

    <style name="TitleBarStyle">
        <item name="android:background">@color/blue</item>
    </style>

首先改变theme, 去掉默认标题栏


super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.activity_picture_flow);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.actionbar_picture_flow);


然后在activity中使用自定义的布局替换标题


新的标题栏中的控件只能从该activity中获取, activity下的fragment无法获取


另一种方法就是在theme中使用noTitle属性去掉标题栏然后完全使用自定义......这样的话按菜单键会报NullPointerE

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

xception, 使用这段代码屏蔽掉菜单键

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值