蓝色一行是自定义的导航栏,
黑色的是自带的 ActionBar ,也就是我们说的标题栏。
首先一般都会选择去掉 ActionBar:
隐藏 actionbar 有很多种方法
这种方法是全局中隐藏了标题栏。
其实在我的手机更新系统之前,隐藏了 ActionBar 后,状态栏和自定义的导航栏颜色是相匹配的,不知道什么原因现在默认为灰色了。
上面使用的主题虽然隐藏了标题栏,但是和我们自定义的导航栏不搭,
这时候我们可以选择用自定义的主题(Theme),来改变状态栏:
在 values 下的 style.xml 中添加
或者在 onCreate 中:
上面两行一般不一起设置,二选一即可。
第一行设置导航栏为透明,第二行将导航栏隐藏。
不推荐第二种做法,如果一个 Activity 中设置了隐藏导航栏而另一个 Activity 没有,那两者切换的时候会不好看。
融合的效果:
状态栏和 app 顶部相融合了,如果标题栏是一张图片效果会更好。
这里还有一个问题,状态栏的文字和我们导航栏的文字重叠了,
我们可以选择在布局文件的根元素中添加:
让布局为状态栏留出空间,就不会出现上面这张被状态栏遮挡的情况。
如果像上面的例子是一样的纯色的标题栏,我们可以选择直接改变状态栏的颜色解决问题。
或者:
不显示时间、电量等信息和文字:
同要可以用修改 Theme 来实现:
或者在 OnCreat() 中加入,还是要注意加在 setContentView() 的前面
如果想让图片全屏要注意设置为:
原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现:方法一、在你的那张Activity中onCreate方法中加上下面代码:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)
setContentView(R.layout.main) //软件activity的布局
但是新的问题又来了,这样是无法深层的定制标题栏的,比如原有的高度和背景都没有发生变化,那有没有好的方法呢?答案是有的、
方法二:
因此先定义一个style,若修改背景请修改android:windowTitleBackgroundStyle
若修改标题栏高度,请修改android:windowTitleSize
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="CustomWindowTitleBackground">
<item name="android:background">#565656</item>
</style>
<style name="test" parent="android:Theme">
<item name="android:windowTitleSize">50dp</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
</style>
</resources>
在程序的android_manifest.xml中对应activity中添加属性android:theme = "@style/test"
就可以了
<activity android:name=".Test"
android:theme = "@style/test" //就在这里
>
</activity>
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了
mainifests中设置:android:theme="@style/AppTheme"(即默认设置).
⒉ values->styles.xml中设置:
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar".
二values->styles.xml中:
在当先使用的style的parent属性添加NoActionBar.如原先为
style name="AppTheme" parent="Theme.AppCompat.Light".
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)