自己定义Actionbar

自己定义Actionbar

大家好,又见面了,我是全栈君。

近期在项目中大量使用actionbar,所以把自己定义的一些属性总结一下。

效果例如以下:
这里写图片描写叙述
1、自己定义actionbar
在theme的style中设置

<item name="android:actionBarStyle">@style/CustomActionBar</item>
    <!-- actionbar样式 -->
    <style name="CustomActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">#fb6029</item> <item name="android:displayOptions">showTitle</item> <item name="android:titleTextStyle">@style/TitleSytle</item> </style>

2、自己定义返回button图标

   <item name="android:homeAsUpIndicator">@drawable/navbar_back</item>

3、自己定义标题样式
这个须要设置actionbar的属性android:titleTextStyle

    <style name="TitleSytle" parent="@android:style/TextAppearance.Large">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">19sp</item>
        <item name="android:layout_marginLeft">5dp</item>
    </style>

4、item字体设置

<item name="android:itemTextAppearance">@style/itemTextStyle</item>
    <style name="itemTextStyle">
        <item name="android:textColor">@android:color/holo_blue_bright</item>
    </style>

5、自己定义overflowbutton图标

  <item name="android:actionOverflowButtonStyle">@style/OverflowButtonStyle</item>
    <style name="OverflowButtonStyle"> <item name="android:src">@drawable/actionbar_add_icon</item> </style>

6、设置overflow的item显示文字和图标
menu

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.edittextdemo.MainActivity" >

    <item
        android:id="@+id/action_add_friend"
        android:icon="@drawable/menu_add_icon"
        android:title="@string/menu_addfriend"/>
    <item
        android:id="@+id/action_scan"
        android:icon="@drawable/men_scan_icon"
        android:title="@string/menu_scan"/>
    <item
        android:id="@+id/action_feedback"
        android:icon="@drawable/menu_feedback_icon"
        android:title="@string/menu_feedback"/>

</menu>

还须要重写onMenuOpened方法

    @Override
    public boolean onMenuOpened(int featureId, Menu menu) {


        if (featureId == Window.FEATURE_ACTION_BAR && menu != null)
        {
            if (menu.getClass().getSimpleName().equals("MenuBuilder"))
            {
                try
                {
                    Method m = menu.getClass().getDeclaredMethod(
                            "setOptionalIconsVisible", Boolean.TYPE);
                    m.setAccessible(true);
                    m.invoke(menu, true);
                } catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }

        return super.onMenuOpened(featureId, menu);

    }

下载源代码:http://download.csdn.net/detail/zhong1113/8765119

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115341.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows11安装 Python

    Windows11安装 PythonWindow11安装Python

    2022年10月24日
  • 安卓Activity跳转的几种方式

    安卓Activity跳转的几种方式本文转载于http://blog.sina.com.cn/s/blog_5140274d0100q4j7.html,本人仅作为学习交流之用,请大家尊重原创。第一种方式,用action来跳转。使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent就与这个目标Ac…

    2022年5月11日
  • vim退出快捷键「建议收藏」

    vim退出快捷键「建议收藏」退出vim的快捷键,不需要进入命令编辑模式按住shiftzz  保存退出zq  不保存退出,q表示放弃之所以按住shift,其实是切换大小写 在命令编辑模式下::q不保存退出:q!不保存强制退出:wq保存退出,w表示写入,不论是否修改,都会更改时间戳:x  保存退出,如果内容未改,不会更改时间戳

    2022年8月24日
  • leetcode刷题:两数之和

    leetcode刷题:两数之和

    2021年2月26日
  • 用Python实现Linux tree命令

    用Python实现Linux tree命令早就耳闻python功能强大,互联网领域运用广泛,Scrapy爬虫框架、OpenStack云存储架构都是用Python实现的。最近下定决心,开始学习Python。先参考网上的demo写一个小例子,实现linuxtree命令。#!/usr/bin/pythonimportos,sys,stringclassXXXTree:def__init__(self):

    2022年7月24日
  • sae wpa3加密方式_WPA3:四大安全新特性技术分析

    sae wpa3加密方式_WPA3:四大安全新特性技术分析周一晚些时候,包括苹果、思科、英特尔、高通和微软等科技巨头在内的Wi-Fi联盟正式推出了新的Wi-Fi安全标准WPA3。这个标准将解决所有已知的、会影响重要标准的安全问题,同时还针对KRACK和DEAUTH等无线攻击给出缓解措施。WPA3为支持Wi-Fi的设备带来重要改进,旨在增强配置、加强身份验证和加密等问题。重要改进主要包括:防范暴力攻击、WAP3正向保密、加强公共和…

    2022年5月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号