近期在项目中大量使用actionbar,所以把自己定义的一些属性总结一下。 效果例如以下: 1、自己定义actionbar 在theme的style中设置 <item name="android:actionBarStyle">@style/CustomActionBar -- actionbar样式 --> <style name="CustomActionBar" parent="@android:style/Widget.Holo.<em>ActionBar</em>"> < 自己定义返回button图标 <item name="android:homeAsUpIndicator">@drawable/navbar_back</item> 3、自己定义标题样式 这个须要设置actionbar OverflowButtonStyle</item> <style name="OverflowButtonStyle"> <item name="android:src">@drawable/actionbar_add_icon
ActionBar 低版本和高版本用法不同 低版本: 1. 引用v7-appcompat 2. Activity自带actionBar 2.从Android3.0(APIlever11)开始,所有使用Theme.Holo主题(或者它的子类)的activity都包含了actionbar,当 targetSdkVersion 所以,为你的activity添加actionbar,只需简单地设置属性为11或者更大。 常用操作: 搜索 Actionbar允许你为当前上下文中最重要的操作添加按钮。 (); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); Tab tab1=actionBar.newTab().setText 上面 ActionBar actionBar = getSupportActionBar();//如果是高版本直接getActionBar actionBar.setDisplayHomeAsUpEnabled
ActionBar 低版本和高版本用法不同 低版本: 1. 引用v7-appcompat 2. Activity自带actionBar 2.从Android3.0(APIlever11)开始,所有使用Theme.Holo主题(或者它的子类)的activity都包含了actionbar,当 targetSdkVersion 所以,为你的activity添加actionbar,只需简单地设置属性为11或者更大。 常用操作: 搜索 Actionbar允许你为当前上下文中最重要的操作添加按钮。 (); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); Tab tab1=actionBar.newTab().setText( 上面 ActionBar actionBar = getSupportActionBar();//如果是高版本直接getActionBar actionBar.setDisplayHomeAsUpEnabled
经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对较为深刻的理解了。 那么不用担心,本篇文章我就将带领大家一起进入ActionBar的应用实战,将理论和实践完美结合到一起。 如果你还没有看过我的前两篇文章,建议先去阅读一下 Android ActionBar完全解析,使用官方推荐的最佳导航栏(上) 和 Android ActionBar完全解析,使用官方推荐的最佳导航栏(下 现在我们已经把ActionBar的界面都实现好了,但是如果你现在运行一下会发现,效果和微信还差得比较远,因为在字体的颜色和大小等方面我们还没有进行微调,因此接下来我们还需要自定义ActionBar的样子 经过前后三篇文章的学习,我相信大家对ActionBar的技术都已经掌握的非常好了,那么我们ActionBar系列的文章也就到此结束。 源码下载,请点击这里
还有一个变化是建议使用Toolbar,而不要使用原来的ActionBar 了! 所以,这两节的内容我打算总结下ActionBar和Toolbar的基本使用,因为Toolbar实际上是ActionBar的扩展,所以这一节还是介绍复杂的ActionBar,下一节再继续介绍Toolbar 1.ActionBar的来源 ActionBar是从Android 3.0开始引入的,它是用于取代3.0之前的标题栏,并提供更为丰富的导航效果。 3.设置ActionBar的风格 参考Styling the Action Bar 下图是三种不同的来自Theme.holo 系列的ActionBar的样式,对应于Theme.AppCompat 系列分别是 其他的关于ActionBar的内容参见这篇文章Android UI开发详解之ActionBar,它还详细介绍了如果开发带Tab的ActionBar以及下拉模式的ActionBar等内容。
com.actionbarsherlock.view.MenuItem @Override public boolean onCreateOptionsMenu(Menu menu) { // 设置背景图片,默认撑满整个ActionBar getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_actionbar)); } }); // setNavigationMode getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST 注意导的包要一致 getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); for (int i = 1; i <= 3; i++) { ActionBar.Tab tab = getSupportActionBar().newTab();
Android 3.0及以上已经有了ActionBar的API,可以通过引入support package在3.0以下的平台引用这些API,但这儿呢,完全自定义一个ActionBar,不用引入额外jar 提取出关于ActionBar的相关文件,你可以放在自己的项目中,最后会附下载地址。下面说下在程序中的用法。 match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.leaf.actionbar.ActionBar ActionBar其实是个Linearlayout,还有些自己的属性,首先要定义一个命名空间,名字随意,如上面的bar。 title就是actionbar的上的标题;type是区分这个actionbar的上左边item的布局,有三种类型,一种是normal:左边是一个显示主页的imagebutton和显示title的textview
使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。 下面是一张使用ActionBar的界面截图: ? 其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮。 ActionBar actionBar = getActionBar(); actionBar.hide(); 现在重新运行一下程序,就可以看到ActionBar不再显示了,如下图所示: 这就是ActionBar导航和Back键在设计上的区别,那么该怎样才能实现这样的功能呢?其实并不复杂,实现标准的ActionBar导航功能只需三步走。 好了,目前为止我们已经把ActionBar的基础知识介绍完了,那么今天的讲解就到这里,下篇文章中我会带领大家一起更深入地了解ActionBar,
使用代码控制 ActionBar 显示 隐藏 (1) ActionBar 相关方法 ActionBar 相关方法解析 : -- Activity 中获取 ActionBar 对象 : 使用 getActionBar () 方法, 即可获取; -- 设置 ActionBar 显示 : ActionBar.show() 方法; -- 设置 ActionBar 隐藏 : ActionBar.hide() 方法; (2) ActionBar 相关代码解析 (1) ActionBar 开启导航相关方法 开启 Tab 导航 : actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS 导航, ActionBar.NAVIGATION_MODE_STANDARD 普通导航; -- 代码示例 : /* 获取 ActionBar */ ActionBar actionBar */ ActionBar actionBar = getActionBar(); /* 设置 ActionBar 的导航方式 * -- ActionBar.NAVIGATION_MODE_TABS
以下内容参考自Android官网http://developer.android.com/training/basics/actionbar/overlaying.html#EnableOverlay 直接调用ActionBar的hide()和show()方法,会造成Activity重新计算和重新绘制布局的新的大小。 如果想在覆盖模式下,依然让布局显示在ActionBar的下方,则在布局文件的父布局下设置paddingTop属性值: 3.0以上版本: <RelativeLayout xmlns:android="http </RelativeLayout> 提示:如果想让<em>ActionBar</em>显示在布局的前面,也可以设置<em>ActionBar</em>的背景为透明即可。 效果如下。 image.png
设置标题: actionBar.setTitle("关于我们"); 显示“返回箭头的按钮" actionBar.setDisplayHomeAsUpEnabled(true); 监听返回按钮的
一、添加ActionBar 1、不需要导入ActionBar,因为在android3.0或者以上版本中,ActionBar已经默认的包含在Activity中 2、在Android3.0的默认主题“holographic 版本(默认含有ActionBar) 二、隐藏ActionBar 1、我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。 3、在我们使用actionBar.hide();方法是系统默认会将ActionBar占用的空间分配给界面,此时显示的界面将会重新绘制。 Google提供给一个属性可以让ActionBar浮在界面上,当然你可以让ActionBar的背景为透明, 这样会有良好的体验效果。 三、添加ActionBar的Item 1、通过程序动态布局 package com.xys.actionbar; import android.os.Bundle; import android.app.ActionBar
本例中主要是如何创建自定义的 ActionBar。 ? 观察上图的,当切换界面时,每个界面的顶部最多只有两个图标,而且有4个界面具有类似特性。所以可以考虑通过自定义控件来创建UI模板。 本例可以简单的创建一个 TopBar 来继承 RelativeLayout,并在 values 文件下新建一个 attrs.xml 布局文件,该文件用于定义 ActionBar 的属性。 当然也可以不用和继承自 RelativeLayout 的类名相同;由于 ActionBar 最多时只有 2 张图片,不需要其他属性(如果想在点击图标时改变图颜色等,还可以定义 format 的 color
需求 让Actionbar 的背景透明,相当于漂浮在你的页面上 思路 首先,设置ActionBar 浮动到主界面上来。 然后,设置ActionBar的背景色,透明或者半透明。 actionBar = getActionBar(); actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#33000000 "))); //google的actionbar是分为上下两栏显示的,上面的代码只能设置顶部actionbar的背景色, //为了让下面的背景色一致,还需要添加一行代码: actionBar.setSplitBackgroundDrawable -- 让actionbar漂浮 --> <item name="android:actionBarStyle">@style/my_actionbar_style</item> <style name="my_<em>actionbar</em>_style" parent="@android:style/Widget.Holo.Light.<em>ActionBar</em>"> <!
ActionBar 样式解析 1. Widget.Holo.Light.ActionBar.Solid.Inverse 样式具体内容 : <style name="Widget.Holo.Light.<em>ActionBar</em>.Solid.Inverse 背景; (2) <em>ActionBar</em> 按钮样式 actionButtonStyle 样式作用 : 控制 <em>ActionBar</em> 上的按钮样式, 如 菜单按钮等; <em>ActionBar</em> 按钮属性 : actionButtonStyle 自定义 <em>ActionBar</em> 样式 默认的 <em>ActionBar</em> 样式 : 1. 自定义左侧的小箭头 在 Activity 中添加代码 : 显示 左侧的小箭头; -- 显示箭头代码 : /* 获取 <em>ActionBar</em> 对象 */ <em>ActionBar</em> <em>actionBar</em> =
如上图所示的带有标题和两个按钮的叫做ActionBar。是从安卓3.0开始被介绍使用的。系统默认使用ActionBar作为工具栏。ActionBar中的item可以显示为两种——按钮和溢出菜单。 可以说其是ActionBar的一部分。也可以说,其中的菜单项,可以在ActionBar中作为按钮显示出来(通过设置showAsAction的值来实现)。 collapseActionView则属于与toolbar(相当于ActionBar的升级版,在各方面都更灵活)相关的设置,与本文主题偏离,不再赘述。
随着Android 4.0和Android 4.2 的发布和慢慢的推广开来,很多应用也开始使用Google推广的UI设计,而ActionBar是其中相当重要的一部分。 无奈google没有发布3.0之前版本的ActionBar的兼容包。还好网上有提供开源的别人开发的,ActionBarShelock,简称ABS. ABS的还有一项值得一提的优点就是,如果你在3.0以上的机子上使用,那么它会调用系统原生的ActionBar。 另外它的使用方法和系统自身的方法相当相似,如果你ActionBar本身已经很熟悉了,那么ABS也能很快上手。 http://actionbarsherlock.com/下载对应的压缩包 2. 4.要使用Actionbar要继承sherlockactivity,在配置文件中声明activity时,要添加Theme设置才行,而且只能是三种或parent是这三种。
标题栏ActionBar ActionBar是在Android3.0之后引入的,所以Android2.x之前的版本不能直接使用ActionBar。 ;调用show方法表示显示 ActionBar actionBar = getActionBar(); if (actionBar ! = null) { actionBar.hide(); //隐藏ActionBar actionBar.show(); //显示ActionBar } ActionBar的基本设置 { ActionBar actionBar = this.getActionBar(); if (actionBar ! { ActionBar actionBar = this.getActionBar(); if (actionBar !
MainActivity.java具体实现: package com.rainmer.actionbartab; import android.app.ActionBar; import android.app.Activity ; import android.app.FragmentTransaction; import android.app.ActionBar.Tab; import android.os.Bundle; super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置导航模式 ActionBar.TabListener tabListener = new ActionBar.TabListener() {
需求 我写了一个activity,使用了actionbar. 实现 显示返回按钮 @Override public void onStart() { super.onStart(); ActionBar actionBar = getActivity().getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setIcon 要达到这点,这就要获得 actionbar的图标。 super.onStart(); ActionBar actionBar = getActivity().getActionBar(); actionBar.setDisplayHomeAsUpEnabled
扫码关注腾讯云开发者
领取腾讯云代金券