Android 4.4 实现透明状态栏和导航栏 Translucent system bar

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:41 我要评论(0)

When Android 4.4 KitKat was released, everyone was excited to see the new translucent status bar and navigation bar. It adds a whole new level of beauty to the operating system. After seeing Trello implement it so well, I wanted to implement it in my own apps. It took me a while with some research to sort some things out, so I thought I would post how I did it to help others and probably myself again at some point in the future.

The Goal

We will be making the status bar (the black bar on the top of the screen) transparent, along with the navigation bar (the black bar at the bottom of the screen). The main source of my original troubles was trying to make the transparent navigation bar correctly overlap with the ListView and display list items as they scroll under the navigation bar.

Part 1Initial Setup

First, we will make the status bar and navigation transparent. You must have two folders inside the /res folder of your project: values and values-v19. Files in the values-19 **folder will be used on API 19 (4.4 KitKat), files in the **valuesfolder will be used on anything below API 19. Then you must create two files, both called styles.xml, one for each values folder; the contents should look similar to what s shown below.

/values/styles.xml

1

2

3

4

<?xml version= 1.0encoding= utf-8 ?>

<resources>

<style name= Theme.TransparencyDemoparent= @android:style/Theme.Holo.Light />

</resources>

/values-v19/styles.xml

1

2

3

4

5

6

7

<?xml version= 1.0encoding= utf-8 ?>

<resources>

<style name= Theme.TransparencyDemoparent= @android:style/Theme.Holo.Light >

<item name= android:windowTranslucentStatus >true</item>

<item name= android:windowTranslucentNavigation >true</item>

</style>

</resources>

You then must set the Theme.TransparencyDemo theme to your application through its manifest:

In the layout containing your list, add two attributes to your ListView:

1

2

3

4

5

6

7

<?xml version= 1.0encoding= utf-8 ?>

<ListView xmlns:android= [http://schemas.android.com/apk/res/android ](http://schemas.android.com/apk/res/android );

android:id= @android:id/list

android:layout_width= fill_parent

android:layout_height= fill_parent

android:fitsSystemWindows= true

android:clipToPadding= false />

The fitsSystemWindows attribute makes your ListView fit to the edges of the action bar and navigation bar (instead of going under them), and clipToPadding makes items of your ListViews and ScrollViews scroll under the navigation bar (and allows the last item in the list scroll all the way up until it just passes the navigation bar). These attributes can also be added to your actual theme (in /values-v19/styles.xml), but that may not be right for all cases.

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...