今天在做图库修改是,需要修改图库的actionbar某个按钮弹出来的下拉框的背景颜色,在网上找了个方法尝试下,没有打到自己的要求,不过阴差阳错的却修改了more下拉框的背景,再次记录下,也许以后能用的到。

  代码

   <style name="Theme.FunuiGallery" parent="android:Theme.Funui">
<item name="listPreferredItemHeightSmall">48dp</item>
<item name="android:itemTextAppearance">@style/Gallery.IconMenu.Item</item>
<item name="switchStyle">@android:style/Widget.CompoundButton</item>
<item name="android:actionBarStyle">@style/PhotoBarStyle</item>
<item name="android:actionModeStyle">@style/ActionModeStyle</item>
<item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
<item name="android:actionModeSplitBackground">@android:drawable/ic_menu_close_clear_cancel</item>
     <item name="*android:activityChooserViewStyle">@style/Gallery.ChooserViewStyle</item>
        <item name="*android:actionModeShareDrawable">@drawable/ic_menu_share_holo_dark</item> </style>
<!-- 修改字体颜色-->
<style name="Gallery.IconMenu.Item" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">#ffffff</item>
</style>
<!--修改more按钮图标-->
<style name="ContactsActionBarOverflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/action_mode_more</item>
</style>

    <style name="Gallery.ChooserViewStyle" parent="@*android:style/Widget.Funui.ActivityChooserView">
         <item name="android:background">@null</item>
    </style>

属性介绍:

1.<item name="android:itemTextAppearance">@style/Gallery.IconMenu.Item</item>

这个主要是用来设置actionmode里面的more按钮的下拉框字体颜色,不过,它里面好像没有设置背景颜色的属性,反而背景会随着字体的颜色而改变

2.<item name="*android:activityChooserViewStyle">@style/Gallery.ChooserViewStyle</item>

这个是用来修改图库上面的那个分享背景的

3.<item name="*android:actionModeShareDrawable">@drawable/ic_menu_share_holo_dark</item>

这个是用来修改分享的图标的

注意

当我们要引用一个非公开的theme或者sytle属性的时候,这时候,我们一定要在前面加上一个*号,无论这个属性是在使用,还是作为某一个theme的父类,就如上面的

<style name="Gallery.ChooserViewStyle" parent="@*android:style/Widget.Funui.ActivityChooserView">

<item name="*android:actionModeShareDrawable">@drawable/ic_menu_share_holo_dark</item>

如果我们实在代码中进行引用,是没办法直接引用非公开的属性的,这时候我们要么是把那个属性公开,要么是自己定义一个属性,然后利用*号引用父类,这时候自己的主题就是公开的了;

如何看一个属性是不是公开的?我们只需要在framework下搜索这个属性,如果能看到public文件中有,就说名这个属性是公开的,就像<public type="attr" name="textAppearanceInverse" id="0x01010035" />。至于怎么使一个属性公开化,还没有去尝试,以后用到再说吧。

今天让一个同事帮忙解决一个问题,主要就是替换一个图片。看他的操作,给我的感触很深,就是他解决问题的时候,思路非常的清晰,虽然他也不知道能不能解决,但他总是能沿着一个方向,有条不紊的进行,而不会向我一样都是在一个地方来回绕。

  1.查找问题关键字

  2.到framework下查找类的具体实现,看其中有没有可利用的属性来实现自己的要求

  3.反过来查询,根据图片来查看到底那个地方用到了这个图片

actionMode-theme中修改actionmode中more下拉框的背景颜色的更多相关文章

  1. ComboboxColumn取值——Winform中DataGridView中某一列使用下拉框

    ComboboxColumn的用法网上很多,绑定数据源都很简单,这里我遇到的是.不绑定数据源,即所有comobox的绑定都是固定的几个数据: 可以看到没有绑定任何数据源, ,在后台cs中取到下拉框的值 ...

  2. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...

  3. 在vue中的form表单中下拉框中的数据来自数据库查询到的数据

    文章目录 1.实现的效果: 2.前端html代码 3.js中的代码 4.后端的方法 1.实现的效果: 增加一个新的类型到数据库 2.前端html代码 需要注意的部分:prop后边是表单中的字段 v-m ...

  4. selenium中各个模块操作:下拉框、鼠标悬浮连贯、拼图拖拽操作、以及其他拖拽操作、连线操作

    1.下拉框的修改操作 方法一:定位到元素后,通过select选择对应的值 方法二:通过两次点击的方法:没有select的value属性时,采用click两次的方法去选择: click第一次后,出现下拉 ...

  5. iosselect:一个js picker项目,在H5中实现IOS的select下拉框效果

    具体文档和demo可以访问github:https://github.com/zhoushengmufc/iosselect 移动端浏览器对于select的展示样式是不一致的,ios下是类似原生的pi ...

  6. layui修改数据的时候下拉框和选择框默认选中

    // 获取需求类型function getType() { var typeHtml = ''; $.ajax({ url: pUrl + 'back_findTypeList.do', type: ...

  7. ThinkPHP中ajax绑定select下拉框无法显示

    html代码: 控制器代码: 其中的<option value="{$vo.gradeId}">{$one.gradeName}</option> 在操作过 ...

  8. robotframework自动化系列:随机下拉框

    robotframework自动化系列:随机下拉框 随着项目自动化不断推进,在下拉框定位的时候出现些问题,每次下拉框选择都是相同的下拉选项,如果想每次选择的选项不一样,该如何实现呢,查找了很多资料,没 ...

  9. MVC4 绑定下拉框方法,解决编辑时不绑定值

    方法一  Controller 部分代码: public ActionResult Modify(int id) { //3.1.1 检查id //3.1.2根据id查询数据 Models.Stude ...

随机推荐

  1. MVC5 + EF6 入门完整教程(转载)--01

    MVC5 + EF6 入门完整教程   第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定". 直接讲这些 "约定&qu ...

  2. vue单页面前端做非空校验

    form表单 确定按钮 js部分 确定按钮的方法

  3. JavaScript笔记(1)

    JS前导: ECMA欧洲计算机制造者协会 ECMA-262 (ES5规范) ECMA-404(Json规范) wsc定义HTML.CSS.DOM规范 计算机程序分为: cpu密集(用于计算) I/O密 ...

  4. notepad++调用python3中文乱码

    使用notepad++,配置好快捷键调用python3,一切就绪,仿佛就差代码了,结果一使用, 中文乱码,一直没有好的解决办法. 最后只能在代码中增加一行重写向输出解决,示例如下: #!/usr/bi ...

  5. while循环合理运用-判断成绩脚本

    在平时的工作生活中,难免不了去写一些交互性质的脚本,然而呢往往有些用户偏偏会输入不合规范的输入,为了避免就此退出脚本重新执行,这时候就可以用while去写一个死循环去针对用户的输出啊.哈哈~他输不对, ...

  6. 国庆 day 3 下午

    a[问题描述] 你是能看到第一题的 friends 呢. ——hja 给你一个只有小括号和中括号和大括号的括号序列,问该序列是否合法.[输入格式] 一行一个括号序列.[输出格式] 如果合法,输出 OK ...

  7. android 推断是否支持闪光灯

    近期在做录制视频功能,在找一些资料时发现 要推断是否支持闪关灯,在这记录下来,怕以后忘记 public static boolean isSupportCameraLedFlash(PackageMa ...

  8. 【cocos2d-x 3.7 飞机大战】 决战南海I (四) 敌机管理

    敌方飞机应该不定时的出现,有自己的生命周期.运动轨迹.这个类用来管理敌机的产生.移动.爆炸.销毁等. 敌机管理类主要函数例如以下 //绑定控制器(更新分数) void bindController(C ...

  9. CCNP路由实验之六 动态路由协议之IS-IS

     CCNP路由实验之六动态路由协议之IS-IS 动态路由协议能够自己主动的发现远程网络.仅仅要网络拓扑结构发生了变化.路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络.还能够在当前网络 ...

  10. js实现小时钟,js中Date对象的使用?

    介绍一下js中Date对象的使用 dateObj = new Date() dateObj = new Date(dateValue) dateObj = new Date(year,month,da ...