`

ActionBar简介

阅读更多
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。
      Action bar的主要目的是:
        1.  提供一个用于识别应用程序的标示和用户的位置的专用空间。
         这个空间的左边是应用的图标或logo,以及Activity的标题。但是,如果是像当前选择的标签这样的标识当前View对象的导航标签,你可以选择删除Activity的标题。
        2.  在不同的应用程序之间提供一致的导航和视觉体验。
        Action bar提供了用于Fragment间切换的内置导航标签。它还提供了一个用于替换导航模式或优化当前视觉效果(如按照不同条件排序的列表)的下拉列表。
        3.  突出Activity的关键操作(如“搜索”、“创建”、“共享”等),并且在可预见的方法内给用户提供快捷的访问。
       对于关键的用户操作,你能够通过把选项菜单项作为操作项直接放到操作栏中,从而提供快捷的访问。操作项目还能提供一个操作窗口,这个窗口给更直接的操作行为提供一个嵌入的窗口部件。没有改进成操作项的菜单项在溢出菜单中还是有效的,用户既可以使用设备上的菜单按钮(设备上有按钮的时候),也可以使用操作栏中的溢出菜单按钮(当设备上不包含菜单按钮时)来显示这些操作项目。


下面上一个简单ActionBar的代码
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;

public class FirstActionBarActivity extends Activity
{
	private Button hideShowActionBar;
    
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
		setContentView(R.layout.activity_first_action_bar);
		hideShowActionBar = (Button) findViewById(R.id.button_hide_show_actionbar);
	
	}

	public void onClick_HideShowActionBar(View view)
	{
		if (getActionBar() == null)
			return;
		if (getActionBar().isShowing()){
			getActionBar().hide();
			hideShowActionBar.setText("显示ActionBar");
		}else{
			getActionBar().show();
			hideShowActionBar.setText("隐藏ActionBar");
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.activity_first_action_bar, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)  
	{
		Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
		return super.onOptionsItemSelected(item);
	}

}


layout : activity_first_action_bar.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button_hide_show_actionbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick_HideShowActionBar"
        android:text="隐藏ActionBar" />

</LinearLayout>


menu : activity_first_action_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_save"
        android:icon="@drawable/save"
        android:showAsAction="ifRoom|withText"
        android:title="保存"/>
    <item
        android:id="@+id/menu_open"
        android:icon="@drawable/open"
        android:showAsAction="ifRoom"
        android:title="打开"/>
    <item
        android:id="@+id/menu_search"
        android:icon="@drawable/search"
        android:showAsAction="always"
        android:title="保存"/>
   
</menu>

该例子会在附件中有源代码。

介绍一个item中的android:showAsAction选项:
这个属性可接受的值有:
  1、always:这个值会使菜单项一直显示在Action Bar上。
  2、ifRoom:如果有足够的空间,这个值会使菜单项显示在Action Bar上。
  3、never:这个值使菜单项永远都不出现在Action Bar上。
  4、withText:这个值使菜单项和它的图标,菜单文本一起显示。
    android:showAsAction="always|collapseActionView表示可扩展


AndroidManifest.xml中<activity中配置 android:uiOptions="splitActionBarWhenNarrow"
会将ActionBar放到底下的界面中







分享到:
评论

相关推荐

    Android ActionBar

    1、ActionBar的简介 ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。 ActionBar 是在Android 3.0(API 11)中加入到SK中的,想在低版本中使用...

    ActionBarEx:高拓展高自定义性ActionBar,完美替代Android系统默认

    项目简介 为什么要写一个ActionBar?官方的和网上开源的那么多。 第一,先说说官方的。官方的在不同系统上的风格并不统一,自定义项太少,不能满足开发需求,所以才涌现了这么多的开源项目。 第二,网上开源的。网上...

    精通Android3中文版

    资源名称:精通Android 3中文版内容简介:《精通Android 3》在上一版的基础上进行了全面改进,增加了Android内部构件的相关知识,介绍了线程、进程、长期运行的服务、广播接收程序和闹钟管理器。本版还介绍了更多UI...

    Android代码-Android 边缘侧滑效果,支持多种场景下的侧滑退出。

    简介 这是一个仿ios边缘右滑返回的库,效果见动图: 普通Activity,内有一个TextView 含有ListView和ViewPager的Activity 依赖 本项目已同步到Jcenter,可直接引用依赖: compile '...

    Android代码-一个能让微信 Material Design 化的 Xposed 模块

    简介 MDWechat 是一个能让微信 Material Design 化的 Xposed 模块. 目前只发布在了酷安上,下载地址 : coolapk 功能 实现的功能有: 主界面 TabLayout Material 化,支持自定义图标 主界面搜索 Material 化 主界面添加...

    Android5.0中Material Design的新特性

    Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出内容。 Material Design对排版、材质、配色、...

    MyPassword:一款开源的密码管理软件,小巧,好用

    简介: 一款开源的密码管理软件,用于保存生活中遇到的各种难记或不常用的账号和密码。安全,简洁,放心,无广告。QQ账号?微信号?邮箱密码?网站通行证?种现在好了,通通提交软件来记住吧,你只是只需要画一个...

    luoyangnews:洛阳新闻网非官方客户端

    ##简介 洛阳新闻网非官方客户端,设计风格遵循Android 5.0推出的Material Design,数据内容来源于。 ##主要技术点 Material Design风格的应用 对网页数据的抓取与过滤处理 下拉刷新,上拉加载更多 侧滑菜单 网络数据...

    精通ANDROID 3(中文版)1/2

    第1章 Android计算平台简介  1.1 面向新PC的全新平台  1.2 Android的历史  1.3 Dalvik VM剖析  1.4 理解Android软件栈  1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 ...

    精通Android 3 (中文版)2/2

    第1章 Android计算平台简介  1.1 面向新PC的全新平台  1.2 Android的历史  1.3 Dalvik VM剖析  1.4 理解Android软件栈  1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 ...

Global site tag (gtag.js) - Google Analytics