【Android知识点精讲】(5)ActionBar详解

本文地址:http://blog.csdn.net/scarthr/article/details/42124109

ActionBar也是Android3.0之后推出的新功能,它取代了原来Activity的标题栏,我们可以使用它做好多事情。

一 ActionBar简介

显示ActionBar:getActionBar().hide()

隐藏ActionBar:getActionBar().show()

创建ActionBar是在menu文件夹中创建布局文件main.xml

其中showAsAction有几个属性需要注意一下:

never:设置这个还是和以前从底部弹出菜单一样。

ifRoom:当ActionBar放置不下时,显示在底部菜单。

always:显示在右上角ActionBar位置。

withText:菜单显示文字。

collapseActionView:和展开、收缩有关的设置。

一般常用的使用ifRoom|withText。

菜单menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.thr.testactionbar.MainActivity" >

    <item
        android:id="@+id/item1"
        android:actionViewClass="android.widget.EditText"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="100"
        android:showAsAction="always|collapseActionView"
        android:title="编辑菜单"/>
    <item
        android:id="@+id/item2"
        android:actionLayout="@layout/menu_text"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="100"
        android:showAsAction="withText|always|collapseActionView"
        android:title="文字菜单"/>
    <item
        android:id="@+id/item3"
        android:actionLayout="@layout/menu_clock"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="100"
        android:showAsAction="always|collapseActionView"
        android:title="时钟菜单"/>
    <item
        android:id="@+id/item4"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="100"
        android:showAsAction="always|collapseActionView"
        android:title="搜索菜单"/>

</menu>
然后在Activity中复写onCreateOptionMenu和onOptionsItemSelected方法即可:

package com.thr.testactionbar;

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.View.OnClickListener;
import android.widget.Toast;

public class MainActivity extends Activity {

	private boolean isActionBarShow = true;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				if (isActionBarShow) {
					isActionBarShow = !isActionBarShow;
					getActionBar().hide();
				} else {
					isActionBarShow = !isActionBarShow;
					getActionBar().show();
				}
			}
		});

	}

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

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		Toast.makeText(this, "你点击了" + item.getTitle(), Toast.LENGTH_SHORT)
				.show();
		return super.onOptionsItemSelected(item);
	}

}

二 上下两分的ActionBar

在Manifest中app节点下添加:

        android:uiOptions="splitActionBarWhenNarrow" 
即可实现上下两分的ActionBar,这是什么意思呢?就是当顶部能放下所有菜单的时候就显示在顶部,放不下所有菜单的时候就统一挪到底布,效果图:



三 收缩和展开的ActionView

我们只要在menu.xml文件中设置了 showAsAction的 collapseActionView属性,那么在点击菜单的时候就会出现收缩和展开的动画效果:
此时还需要设置actionViewClass或者actionLayout指定当展开时显示的内容。
actionViewClass是设置调用的类名,我们可以指定系统的如:
        android:actionViewClass="android.widget.EditText"
actionLayout可以指定我们自己创建的布局文件。
要想监听我们的ActionBar是否展开收缩可以实现OnActionExpandListener接口,它有两个方法onMenuItemActionCollapse收缩和onMenuItemActionExpand展开。

这里顺带提一下关于SearchView的使用:
SearchView可是使用setOnQueryTextListener监听输入内容和搜索事件,使用setSubmitButtonEnabled(true),来控制是否显示提交按钮。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android Studio中的ActionBar是一个应用程序栏,它提供了一些常用的操作,例如导航、搜索、设置等。它可以帮助用户更方便地使用应用程序,并提高用户体验。在Android Studio中,我们可以使用一些库来实现ActionBar,例如AppCompat库和Toolbar库。同时,我们也可以自定义ActionBar,以满足特定的需求。 ### 回答2: Android Studio是一个专门为Android系统开发者打造的集成开发环境。Action Bar是指Android应用程序顶部的工具栏,可以方便用户进行操作,包括菜单、工具等。它可以减少用户操作界面上的摆放,使其更加简洁。使用Android Studio进行开发过程中,可以通过设置和调用一些属性来配置Action Bar。 首先,在Android Studio中创建一个新的Activity,在XML布局文件中添加一个Toolbar组件,Toolbar组件可以被用作Action Bar。其次,在Java类中通过调用setSupportActionBar方法来显示Toolbar,Toolbar即可作为Action Bar在热身活动中使用。同时也可以设置菜单项和监听器。 在开发过程中,我们也可以调用Action Bar中的API。例如,setHomeButtonEnabled()方法可以控制左侧的Home图标是否可用,setDisplayHomeAsUpEnabled()方法可以控制左侧的返回键是否可见,setNavigationMode()方法可以控制Action Bar的显示模式,show()和hide()方法可以控制Action Bar的显示和隐藏。除此之外,通过改变Toolbar的主题,在Action Bar上增加背景图像,改变字体颜色、大小等属性,使得Action Bar更加美观。 总之,通过Android Studio来配置Action Bar可以使得应用程序更加方便操作、界面更加美观。它也是Android应用程序编程中的一个重要特性。 ### 回答3: Android Studio ActionBar是一种Android应用程序的界面元素,通常在顶部显示,用于显示应用程序的重要内容和操作。 Android Studio ActionBar 具有以下优点: 1. 提供可靠的用户体验:作为应用程序最常见的方式之一,Android Studio ActionBar 可以引导用户在应用程序中进行操作,提高应用程序的易用性和功能性。 2. 拥有自定义配置能力:开发人员可以轻松配置和自定义ActionBar,以使其符合应用程序的需求和主题。 3. 提供多种风格:Android Studio ActionBar 提供了许多样式和外观,以满足广泛的应用和用户需求。 4. 支持各种操作: Android Studio ActionBar 支持多种操作,例如搜索,导航,菜单,通知等,可以增强用户体验和应用程序功能。 5. 方便快捷:作为一个方便的快捷操作区域, Android Studio ActionBar 为用户提供了许多快速访问应用程序功能的方法。 总之,Android Studio ActionBar 是开发高效的应用程序以及提高应用程序用户体验的重要元素。它提供了各种优点,以满足开发人员和用户的不同需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值