自己定义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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 备份数据库表结构_sql备份表和恢复表

    备份数据库表结构_sql备份表和恢复表##================================================================##需求场景:由于MySQL没有类似于SQLSERVER那样的系统表来存放备份记录,且大规模的MySQL服务器需要集中管理和查看。服务器出现性能问题或复制延迟时,需要先判断是否由数据备份引起。##===========================…

    2025年11月14日
    3
  • adb命令删除手机密码设置

    adb命令删除手机密码设置

    2021年9月30日
    97
  • Hardware Random Number Generators on Intel Chipsets

    Hardware Random Number Generators on Intel Chipsets

    2021年7月22日
    65
  • 【shell案例】学员管理系统「建议收藏」

    【shell案例】学员管理系统「建议收藏」前言学员管理系统涉及到学员的增删改查,这是一个综合性比较强的项目,在所有的编程语言里都会有不同版本的学员信息管理系统,难度适中效果截图学员管理系统源码#!/bin/bash##随机点名册whiletruedo echo”学生随机点名系统” echo”1.添加学员名单” echo”2.遍历学员名单” echo”3.随机点名” echo”4.删除某个学员的信息” echo”5.退出” read-p”请输入你要选择的序号:”num case

    2026年2月5日
    5
  • vb调用access数据库(access追加查询键值冲突)

    VB连接access数据库时,在查询语句中需要使用like问题时注意1、officeaccess中查询的通配符“*”。SQL中通配符是“%”2、但在VB中使用时,为“%%”,不是“*”,也不是“**”转载于:https://www.cnblogs.com/xbj-hyml/p/6928695.html…

    2022年4月16日
    33
  • 无锁编程入门「建议收藏」

    无锁编程入门「建议收藏」无锁编程入门本文档的最后也说了,确实是简单介绍,本身需要参考很多其他链接的东西。有翻译不对的地方请帮忙指出来。谢谢。文章中红色字体是我自己加的。原文地址:http://preshing.com/20120612/an-introduction-to-lock-free-programming无锁编程是一个挑战,不只是因为任务本身的复杂度,还由于《 butbecauseo

    2022年6月6日
    34

发表回复

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

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