• 仿微沟道效应,主要actionbar有些知识


    仿微沟道效应,主要actionbar有些知识

    1.新actionBar的menu

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context="com.pangzaifei.weixin.Demo" >
    	<item 
    	    android:id="@+id/action_search"
    	    android:title="查询"
    	    android:icon="@drawable/actionbar_search_icon"
    	    android:actionViewClass="android.widget.SearchView"
    	    android:showAsAction="ifRoom|collapseActionView"
    	    />
    	<item 
    	    android:id="@+id/action_plus"
    	    android:title="加入"
    	    android:icon="@drawable/actionbar_add_icon"
    	    android:actionProviderClass="com.pangzaifei.weixin.MyActionPlusProvider"
    	    android:showAsAction="ifRoom"
    	    />
    	<item 
    	    android:id="@+id/action_album"
    	    android:title="我的相冊"
    	    android:icon="@drawable/ofm_photo_icon"
    	     android:showAsAction="ifRoom"
    	    />
    	<item 
    	    android:id="@+id/action_album"
    	    android:title="我的收藏"
    	    android:icon="@drawable/ofm_collect_icon"
    	     android:showAsAction="ifRoom"
    	    />
    	<item 
    	    android:id="@+id/action_album"
    	    android:title="我的银行卡"
    	    android:icon="@drawable/ofm_card_icon"
    	     android:showAsAction="ifRoom"
    	    />
    	<item 
    	    android:id="@+id/ofm_setting_icon"
    	    android:title="设置"
    	    android:icon="@drawable/ofm_photo_icon"
    	     android:showAsAction="ifRoom"
    	    />
    	<item 
    	    android:id="@+id/action_album"
    	    android:title="意见反馈"
    	    android:icon="@drawable/ofm_feedback_icon"
    	    android:showAsAction="ifRoom"
    	    />
    
    </menu>
    使用内置的searcharview
    <pre name="code" class="java">   android:actionViewClass="android.widget.SearchView"

    
    

    使用provider,实现微信+号功能

     android:actionProviderClass="com.pangzaifei.weixin.MyActionPlusProvider"
    2.一些注意的地方

        /**
         * 防止很多其它button在一些手机上不显示的问题
         */
        private void showOverFlowAlawys() {
            ViewConfiguration configuration = ViewConfiguration.get(this);
            try {
                Field field = ViewConfiguration.class
                        .getDeclaredField("sHasPermanentMenuKey");
                field.setAccessible(true);
                field.setBoolean(configuration, Boolean.FALSE);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
        @Override
        public boolean onMenuOpened(int featureId, Menu menu) {
            if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
                if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
                    // 设置显示icon
                    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);
        }

    使用须要配置PagerSlidingTabStrip

    <resources>
    
        <declare-styleable name="PagerSlidingTabStrip">
            <attr name="pstsIndicatorColor" format="color" />
            <attr name="pstsUnderlineColor" format="color" />
            <attr name="pstsDividerColor" format="color" />
            <attr name="pstsIndicatorHeight" format="dimension" />
            <attr name="pstsUnderlineHeight" format="dimension" />
            <attr name="pstsDividerPadding" format="dimension" />
            <attr name="pstsTabPaddingLeftRight" format="dimension" />
            <attr name="pstsScrollOffset" format="dimension" />
            <attr name="pstsTabBackground" format="reference" />
            <attr name="pstsShouldExpand" format="boolean" />
            <attr name="pstsTextAllCaps" format="boolean" />
        </declare-styleable>
    
    </resources>
    样式微调
        <style name="WeixinTheme" parent="android:Theme.Holo.Light.DarkActionBar">  
            <item name="android:actionBarStyle">@style/WeChatActionBar</item>  
            <item name="android:itemBackground">@drawable/actionbar_bg_selector</item>  
            <item name="android:actionBarItemBackground">@drawable/actionbar_bg_selector</item>  
            <item name="android:itemTextAppearance">@style/WeChatActionBarOverflow</item>  
            <item name="android:actionOverflowButtonStyle">@style/WeChatActionButtonOverflow</item>  
        </style>  
      
        <style name="WeChatActionBar" parent="@android:style/Widget.Holo.ActionBar">  
            <item name="android:background">#303537</item>  
            <item name="android:titleTextStyle">@style/WeChatActionBarTitleText</item>  
        </style>  
      
        <style name="WeChatActionBarTitleText" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">  
            <item name="android:textColor">#cfcfcf</item>  
            <item name="android:textSize">17sp</item>  
        </style>  
      
        <style name="WeChatActionBarOverflow" parent="@android:style/Widget.ActionButton.Overflow">  
            <item name="android:textSize">16sp</item>  
        </style>  
      
        <style name="WeChatActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">  
            <item name="android:src">@drawable/actionbar_more_icon</item>  
        </style> 



    完整代码下载地址:

    http://download.csdn.net/detail/pangzaifei/7672161






    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    什么?Spring Boot CommandLineRunner 有坑!?
    关于 websocket 跨域的一个奇怪问题…
    电商金额计算的 4 个坑,千万注意了!
    微服务模块划分原则和接口定义原则
    tcp的三次握手(连接)与四次挥手(断开)
    二叉树遍历及算法实现
    elasticsearch搜索 倒排索引
    kubernetes落地-传统web服务迁移
    Docker核心技术-容器管理
    Docker核心技术-镜像管理
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4850660.html
Copyright © 2020-2023  润新知