设置导航栏样式
导航栏通过用户熟悉和可预知的方式来操作和浏览程序,但是这并不意味着所有程序中的导航栏看起来都一个样.如果你想使导航栏的风格更好的匹配你的品牌,你可以通过使用Android样式和主题轻松的实现.
Android内建了"黑色"和"白色"两款导航栏样式.你也可以扩展这些主题,进一步定制你的导航栏的样式.
备注:如果你使用的是支持库来实现的导航栏,那么你必须使用(或覆盖)"Theme.AppCompatible"的样式.如果是这样,任何一个你声明的样式属性都必须在两个地方声明:一是
一.使用Android内建主题
Android内建了两个基本的活动主题,配置了不同的导航栏颜色.
* "Theme.Holo"为黑色主题
* "Theme.Holo.Light"为白色主题
你可以在"manifest"文件中的"<application>"元素或特定的"<activity>"元素中通过"android:theme"属性为你的整个程序或特定的活动页面设置主题.例如:
<application android:theme="@android:style/Theme.Holo.Light" ... />
你也可以通过声明"Theme.Holo.Light.DarkActionBarActivity"主题来设置导航栏为黑色,活动页面的其他部分为白色.
如果使用的是支持库,那么你必须使用"Theme.AppCompat"主题代替:
* "Theme.AppComPat"为黑色主题
* "Theme.AppCompat.Light"为白色主题
* "Theme.AppCompat.Light.DarkActionBar"为主体白色,导航栏黑色.
当设置导航栏图标时,确保你的图标和导航栏主题能够形成鲜明的对比."Action Bar Icon Pack"中提供了两种主题的一些基本导航栏图标.
二(1).自定义导航栏背景色
想要改变导航栏的背景颜色,首先为相应的activity自定义一个主题,然后复写"actionBarStyle"属性.这个属性指向另外一个样式,在这个样式中你可以复写"background"属性来设置导航栏背景的绘制资源.
如果你的程序使用的是导航选项卡或拆分操作栏,那么你可以使用"backgroundStacked"和"backgroundSplit"
属性类为它们设置背景颜色.
警示:最好为你自定义的主题声明一个父主题,否则你的导航栏将会缺少很多样式属性,除非你自己再明确的定义它们.
(1).从Android3.0开始
你可以通过如下方式定义导航栏背景颜色:
res/values/themes.xml
<resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_background</item> </style> </resources>
通过下面的方式将主题配置给整个程序或某些特定的活动页面.
<application android:theme="@style/CustomActionBarTheme" ... />
(2).从Android2.1开始
当使用的是支持库时,同上面一样的主题需要按照如下配置:
res/values/themes.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="android:background">@drawable/actionbar_background</item> <!-- Support library compatibility --> <item name="background">@drawable/actionbar_background</item> </style> </resources>
通过下面的方式将主题配置给整个程序或某些特定的活动页面.
<application android:theme="@style/CustomActionBarTheme" ... />
二(2).自定义文本颜色
要修改导航栏中文本的颜色,你需要为每一个文本元素重写两个独立的属性:
* 导航栏标题:创建自定义样式文件"actionBarStyle",指定"testColor"属性和"TitleTextStyle"属性的样式.
备注:自定义的"titleTextStyle"样式的父样式应该为"TextAppearance.Holo.Widget.ActionBar.Title"
* 导航选项卡:在活动主题中重写"actionBarTabTextStyle"属性
* 导航栏按钮:在活动主题中重写"actionMenuTextColor"属性
(1).从Android3.0开始
你的XML样式文件看起来如下:
res/values/themes.xml
<resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.Holo"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> <item name="android:actionMenuTextColor">@color/actionbar_text</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Widget.Holo.ActionBar"> <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> </style> <!-- ActionBar title text --> <style name="MyActionBarTitleText" parent="@style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_text</item> </style> <!-- ActionBar tabs text styles --> <style name="MyActionBarTabText" parent="@style/Widget.Holo.ActionBar.TabText"> <item name="android:textColor">@color/actionbar_text</item> </style> </resources>
(2).从Android2.1开始
XML样式文件看起来为:
res/values/themes.xml
<resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> <item name="android:actionMenuTextColor">@color/actionbar_text</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item> <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item> <item name="actionMenuTextColor">@color/actionbar_text</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> <!-- Support library compatibility --> <item name="titleTextStyle">@style/MyActionBarTitleText</item> </style> <!-- ActionBar title text --> <style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionbar_text</item> <!-- The textColor property is backward compatible with the Support Library --> </style> <!-- ActionBar tabs text --> <style name="MyActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText"> <item name="android:textColor">@color/actionbar_text</item> <!-- The textColor property is backward compatible with the Support Library --> </style> </resources>
二(3).自定义选项卡指示器
创建一个活动主题,重写"actionBarTabStyle"属性就可以改变选项指示器.这个属性指向另一个样式资源,该资源
位于你重写"background"属性的文件中,在这个文件中你还应该定义一个可绘制的声明列表.
备注:定义一个可绘制的声明列表,这样当前被选中的选项的背景就会和其他选项的背景区分开来.
例如,下面是一个可绘制声明列表,为几种不同状态的导航栏选项卡定义了特定的背景图片.
res/drawable/actionbar_tab_indicator.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- STATES WHEN BUTTON IS NOT PRESSED --> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> <!-- Focused states (such as when focused with a d-pad or mouse hover) --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused" /> <!-- STATES WHEN BUTTON IS PRESSED --> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> <!-- Focused states (such as when focused with a d-pad or mouse hover) --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> </selector>
(1).从Android3.0开始
XML样式文件看起来为:
res/values/themes.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.Holo"> <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> </style> <!-- ActionBar tabs styles --> <style name="MyActionBarTabs" parent="@style/Widget.Holo.ActionBar.TabView"> <!-- tab indicator --> <item name="android:background">@drawable/actionbar_tab_indicator</item> </style> </resources>
(2).从Android2.1开始
XML样式文件为:
res/values/themes.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat"> <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> <!-- Support library compatibility --> <item name="actionBarTabStyle">@style/MyActionBarTabs</item> </style> <!-- ActionBar tabs styles --> <style name="MyActionBarTabs" parent="@style/Widget.AppCompat.ActionBar.TabView"> <!-- tab indicator --> <item name="android:background">@drawable/actionbar_tab_indicator</item> <!-- Support library compatibility --> <item name="background">@drawable/actionbar_tab_indicator</item> </style> </resources>
相关推荐
首先,导航栏是网站的重要组成部分,它能够帮助用户快速找到所需的信息和商品。...自定义样式:根据您的品牌或网站风格,自定义导航栏的样式和外观。 另外,如果您想使用jQuery来实现一些额外的功能,例如动态
* noSticky: 取消导航栏粘性布局(不占头部导航栏位置),默认不取消 * opacity: 导航栏透明度,默认1不透明 * showNavBtn: 是否显示左侧导航按钮,默认true显示 * navIcon: 用户自定义导航按钮图标路径 * ...
给页面导航栏选中栏目添加特殊样式的案例(页面刷新或者跳转到新页面后导航栏的样式仍然有效)
你可以轻松地定制项目的样式、添加新的项目,以及调整悬停效果的速度和样式。 清晰的导航结构: 导航栏项目被组织成清晰的层次结构,帮助用户快速找到他们需要的信息。这种结构化的设计有助于提高整个网站的可用性...
在开发中发现uni-app原生导航栏也能实现一些顶部自定义按钮+搜索框,只需在page.json里面做一些配置即可。设置app-plus,配置编译到App平台的特定样式。dcloud平台对app-plus做了详细说明:app-plus配置,需注意 ...
在 Bootstrap 导航栏的核心中,导航栏包括了为站点名称和基本的导航定义样式。 创建一个默认的导航栏的步骤如下: 向 <nav> 标签添加 class .navbar、.navbar-default(白底黑字),navbar-inverse(黑底白字) ...
在 Bootstrap 导航栏的核心中,导航栏包括了为站点名称和基本的导航定义样式。 创建一个默认的导航栏的步骤如下: 向 <nav> 标签添加 class .navbar、.navbar-default(白底黑字),navbar-inverse(黑底白字) 向...
因为android 和iOS 手机的不同,导航栏的显示也不太一样,而这篇文章会尽量的配置属性,让两端的导航栏样式、页面跳转的动画保持一致,同时还会介绍底部导航栏添加角标的方法。 这里使用的是3.9.1版本,网上
Android底部导航栏的实现方式特别多,例如TabHost,TabLayout,或者TextView等,都可以实现底部导航栏的效果,但是却没有Google官方统一的导航栏样式,今天讲的就是Google最近添加到Material design中的底部导航栏...
您可以设置导航栏的全局统一样式,并将其添加为每个页面中的react组件。 它支持: 绝对位置样式。 安全区域插入样式。 纵向和横向模式。 Android的半透明属性。 不要自动返回动作。 标题居中或不居中。 ...
如下所示: 默认情况下,路由的导航菜单,会自动给当前菜单添加router-link-exact...以上这篇Vue-路由导航菜单栏的高亮设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
补充知识:记录vue遇到问题,子页面没有router-link对应导航栏激活样式 如下所示: li>”/basicSearch” class=”{‘link-active’:linkBoolean}”>基础检索</router></li> data () { return { imgUrl, ...
一个简单的delphi导航菜单,赶快下载吧!
2.优化分类,调用到导航栏上面,实现改分类不用手动在修改! 3.内页调用代码一个显示不正常,进行了修复! 4.首页加入设为首页,加入收藏等代码功能! 5.特别提醒所有客户,网站上传后一定要修改data下在数据库名(改了...
本文实例为大家分享了微信小程序自定义头部导航栏的具体代码,供大家参考,具体内容如下 效果图 支持 导航栏自定义背景颜色、背景图片 支持返回文字自定义 支持导航标题自定义 首先在app.json window配置项添加 ...
下面小编就为大家带来一篇Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这是一个基于uni-app的头部自定义导航栏,采用的技术:微信小程序API,结合Vue语法实现;自定义导航进行了封装,任何页面随时都可以引入,并且可通过条件控制进行所需展示与隐藏的。以上只是个demo,具体更多的可以...
强大的后台功能:(1)图片批量上传 - 海量图片轻松上传,大大减少工作量(2)富文本编辑器 - 增加文本的样式,支持插入图片(3)图片自动裁切 - 无需PS等软件手工裁切 省去大量工作时间(4)导航栏自定义 - 导航栏...
在 Bootstrap 导航栏的核心中,导航栏包括了站点名称和基本的导航定义样式。 默认的导航栏 创建一个默认的导航栏的步骤如下: 向 标签添加 class .navbar、.navbar-default。 向上面的元素添加 role=”...