当前位置:首页 > 开发 > 移动开发 > 正文

ActionBar简介

发表于: 2014-07-31   作者:不懂事的小屁孩   来源:转载   浏览:
摘要: Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Androi
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放到底下的界面中







ActionBar简介

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
ActionBar是3.0之后出现的控件,取代menu,显示在标题栏位置。根据我的经验,menu尽量不要使用,很
关于那个问题:是关于如何生成如下图所示之ActionBar效果: 其实就在官网上就有答案,自己疏忽再加
作者 : 万境绝尘 (octopus_truth@163.com) 转载请著名出处 :http://blog.csdn.net/shulianghan/arti
作者 : 万境绝尘 (octopus_truth@163.com) 转载请著名出处 : http://blog.csdn.net/shulianghan/art
本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Ite
写于开始前,首先这篇是翻译,源自于自己关于ActionBar的一个问题求教于manoel兄,其csdn博客地址(
1,actionBar 隐藏 title 和icon 可以通过代码设置也可以通过主题设置,另外如果要用logo代替icon
本文简单的介绍一下ActionBar。如有错误之处请多指教。 一、概述 Action Bar是Android 3.0之后引入
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情
ActionBar介绍 ActionBar是android窗口应用的一个特征,它主要用于标示应用程序及用户所处的位置并
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号