前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自己定义Actionbar

自己定义Actionbar

作者头像
全栈程序员站长
发布2022-07-10 15:15:32
3270
发布2022-07-10 15:15:32
举报

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

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

效果例如以下:

这里写图片描写叙述
这里写图片描写叙述

1、自己定义actionbar 在theme的style中设置

代码语言:javascript
复制
<item name="android:actionBarStyle">@style/CustomActionBar</item>
代码语言:javascript
复制
    <!-- 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图标

代码语言:javascript
复制
   <item name="android:homeAsUpIndicator">@drawable/navbar_back</item>

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

代码语言:javascript
复制
    <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字体设置

代码语言:javascript
复制
<item name="android:itemTextAppearance">@style/itemTextStyle</item>
代码语言:javascript
复制
    <style name="itemTextStyle">
        <item name="android:textColor">@android:color/holo_blue_bright</item>
    </style>

5、自己定义overflowbutton图标

代码语言:javascript
复制
  <item name="android:actionOverflowButtonStyle">@style/OverflowButtonStyle</item>
代码语言:javascript
复制
    <style name="OverflowButtonStyle"> <item name="android:src">@drawable/actionbar_add_icon</item> </style>

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

代码语言:javascript
复制
<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方法

代码语言:javascript
复制
    @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.cn/115341.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月5,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com