今天在做图库修改是,需要修改图库的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. Tuples are immutable

    A tuple is a sequence of values. The values can be any type, and they are indexed by integers, so in ...

  2. 1.C语言指针学习之外挂篇

    学习了c语言的指针,那么指针能做什么呢,首先,他可以写外挂 首先我们来编写一个dll,挂载到植物大战僵尸上,记住是dll,因为如果你创建一个应用程序,该应用程序是不能操作其他程序的地址的. 第一步,打 ...

  3. 【DNN发布包解释】package 包裹

    package 包裹 owner 主人 dependency 附属国 azureCompatible 天青兼容 releaseNotes  发行说明 license 许可证 CoreVersion 核 ...

  4. UI Framework-1: Aura Event Handling

    Event Handling A diagram of the architecture of this system:     HWNDMessageHandler owns the WNDPROC ...

  5. centos 安装 aria2 webui 实现网页下载

    centos aria2 webui 安装aria2 安装 rpmforge源 wget http://repository.it4i.cz/mirrors/repoforge/redhat/el6/ ...

  6. caffe(14) python可视化

    首先将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示. 图片大小为360x480,三通道 In [1]: import numpy as np import matplo ...

  7. Vue总结(二)

    原始引用:开发时使用开发版本,线上使用生产版本. 原始引用到html中,在浏览器中控制台输入Vue,输出一个函数就可以. defineProperties实现的数据绑定. //defineProper ...

  8. vue分页组件火狐中出现样式问题

    分页的操作到了火狐浏览器会样式 怎么解决? 其实就是将input的type属性变成了text,因为number属性会变成上下的小箭头

  9. Haproxy实现web的页面的动静分离

    一.Haproxy概述: 概述:Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,由C语言编写而成,支持会话保持.七层处理.健康检查.故障修复后自动加载.动静分离.HAProxy ...

  10. HttpService解析

    HttpServlet容器响应Web客户请求流程如下: 1)Web客户向Servlet容器发出Http请求: 2)Servlet容器解析Web客户的Http请求: 3)Servlet容器创建一个Htt ...