V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jayn1985
V2EX  ›  Android

ActionBar 样式求助

  •  
  •   jayn1985 · 2015-01-15 23:21:28 +08:00 · 9203 次点击
    这是一个创建于 3592 天前的主题,其中的信息可能已经有所发展或是发生改变。

    LZ目前在折腾一个小的app,但是遇到一个ActionBar样式的问题,搞了半天没有搞出来,所以特意登录发帖来咨询下各位小伙伴们:
    <resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyAppActionBar</item>
    </style>
    <style name="MyAppActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@drawable/actionbar_gradient_bg</item>
    </style>
    </resources>

    上面是我的整个App的ActionBar的定义,然后在每个Activity的layout里设置了背景色为白色,layout_width和layout_height均设置为match_parent,我的初步想法是通过以上的设置可以使得app的整个主体内容均以白色为背景,但是在实际的测试中发现,ActionBar和我的Activity的主体内容的最上部之间存在着一个灰色的区域(默认背景色),由于我的Activity的layout设置的宽高均是填充整个区域,并且也没有设置margin top的值,那么我猜测这个应该是Widget.Holo.Light.ActionBar.Solid.Inverse的样式的设置中可能有类似的设置(例如margin bottom之类的),当然这只是我的猜测,所以想问问版上的童鞋有没有遇到过类似的场景,并且都是怎么解决的,万分感激~

    16 条回复    2015-01-16 11:02:53 +08:00
    qbeenslee
        1
    qbeenslee  
       2015-01-15 23:37:29 +08:00 via iPhone
    再添加一个属性值 <item name="background">@color/your_color</item>
    jayn1985
        2
    jayn1985  
    OP
       2015-01-15 23:40:10 +08:00
    @qbeenslee 这个不仅没解决问题,岂不是把我前面设置的ActionBar的背景色也给覆盖了?
    qbeenslee
        3
    qbeenslee  
       2015-01-15 23:48:49 +08:00 via iPhone
    @jayn1985 属性值改成自己想要的,试一下,我只是提醒。还有看Android 官方文档上的training上有讲
    jayn1985
        4
    jayn1985  
    OP
       2015-01-16 00:03:43 +08:00
    @qbeenslee 其实我就是想问下是不是有哪个属性可以做到消除中间那一小块默认灰色区域的,至少background属性肯定是解决不了这个问题的吧,而且我已经使用了这个属性来定义了我想要的ActionBar的背景色了,明天再找找文档看下~
    qbeenslee
        5
    qbeenslee  
       2015-01-16 00:06:27 +08:00 via iPhone
    @jayn1985 你上张图片,什么灰条,说得很抽象。。。 大不了你用ToolBar 自定义
    allan1st
        6
    allan1st  
       2015-01-16 00:07:38 +08:00
    最好搞个图,要不不太理解 LZ 的意思
    我猜想你是不是要设置 activity 的背景?再 Theme 里面设置:
    <item name="android:windowBackground">@android:color/white</item>
    allan1st
        7
    allan1st  
       2015-01-16 00:12:17 +08:00
    好像有点看懂你说的是什么了:actionbar 的 shadow
    Holo:
    <item name="android:windowContentOverlay">@null</item>
    <item name="windowContentOverlay">@null</item>
    Material:
    elevation = 0dp
    jayn1985
        9
    jayn1985  
    OP
       2015-01-16 00:28:29 +08:00
    nnd,刚才在折腾怎么在v2ex发图,大家可以打开之前的link将就着看吧,貌似还是没成功。。。为了提高对比度,我把ActionBar的背景色设成绿色了,然后可以仔细看下,ActionBar下面是有一小块灰色的区域的,但是奇怪的是含有那段TextView的Layout貌似确实是填充整个区域了,而且背景色为白色,但是为啥那一小块灰色区域还存在呢。。
    jayn1985
        10
    jayn1985  
    OP
       2015-01-16 00:30:24 +08:00
    @qbeenslee
    @allan1st
    两位童鞋现在可以看截图了。。。。
    allan1st
        11
    allan1st  
       2015-01-16 00:30:56 +08:00
    @jayn1985 话说你的汉堡包怎么有四片面包? :)
    jayn1985
        12
    jayn1985  
    OP
       2015-01-16 00:35:46 +08:00
    jayn1985
        13
    jayn1985  
    OP
       2015-01-16 00:41:35 +08:00
    @allan1st 好吧,我在刚才推荐的网站里找到了三片面包的图标了,明天给换掉~ 但是问题还是没有解决啊,咋越讨论越偏离了呢,哈哈~
    allan1st
        14
    allan1st  
       2015-01-16 01:49:15 +08:00   ❤️ 1
    @jayn1985 问题答案在7楼啊
    jayn1985
        15
    jayn1985  
    OP
       2015-01-16 10:55:02 +08:00
    @allan1st 感谢回复,我使用了你说的方法,但是发现问题还在,我使用的android测试版本是4.4,刚才在网上找了一下,是android的一个bug?
    jayn1985
        16
    jayn1985  
    OP
       2015-01-16 11:02:53 +08:00
    @allan1st 刚才发现那条设置语句放错地方了,应该放到AppTheme而不是ActionBar的style下面,原来这个东西是ActionBar的默认的shadow: http://stackoverflow.com/questions/12246388/remove-shadow-below-actionbar , 问题得到解决了,非常感谢:)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2624 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:49 · PVG 18:49 · LAX 02:49 · JFK 05:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.