自定义ActionBar的两种方式(静态动态)

自定义ActionBar的两种方式(静态&动态)

分类:Android

androidActionbar

说明

Android 3.0及以上已经有了ActionBar的API,,有了ActionBar的API之后可以随意自定义自己漂亮的ActionBar了

基本知识了解1.Actionbar’s API

1.1 setHomeButtonEnabled这个小于4.0版本的默认值为true的。但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。

1.2 actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP

1.3 actionBar.setDisplayShowHomeEnabled(true) //使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,否则,显示应用程序图标,对应id为android.R.id.home,对应ActionBar.DISPLAY_SHOW_HOME

1.4 actionBar.setDisplayShowCustomEnabled(true) // 使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用,对应ActionBar.DISPLAY_SHOW_CUSTOM

1.5 actionBar.setDisplayShowTitleEnabled(true) //对应ActionBar.DISPLAY_SHOW_TITLE。 其中setHomeButtonEnabled和setDisplayShowHomeEnabled共同起作用,如果setHomeButtonEnabled设成false,即使setDisplayShowHomeEnabled设成true,图标也不能点击

2.文章引用

2.1 2.2 [Using the Android action bar (ActionBar) – Tutorial] 2.3自定义ActionBar标题与菜单中的文字样式

讲解

1.“静态”自定义ActionBar,这里的静态只得就是通过布局代码,和菜单一样为ActionBar添加选项。

源码介绍

Mainactivity.java

package com.jony.actionbarccustom;import android.app.ActionBar;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Toast;{(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//自定义ActionBarfinal ActionBar actionBar = getActionBar();actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);actionBar.setCustomView(R.layout.actionbar);//自定义ActionBar布局actionBar.getCustomView().setOnClickListener((View arg0) {switch (arg0.getId()) {case R.id.back:showToast(R.string.finish);finish();break;default:break;}}});}(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.actionbar_menu, menu);getMenuInflater().inflate(R.menu.main, menu);//使用代码来动态控制MenuItem的显示状态 or XML定义MenuItem的显示状态 /*MenuItem share = menu.findItem(R.id.share);MenuItem undo = menu.findItem(R.id.undo);MenuItem redo = menu.findItem(R.id.redo);MenuItem save = menu.findItem(R.id.save);share.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);undo.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);redo.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);save.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);*/return true;}(MenuItem item) {switch (item.getItemId()) {case R.id.undo:showToast(R.string.undo);break;case R.id.redo:showToast(R.string.redo);break;case R.id.save:showToast(R.string.save);break;case R.id.share:showToast(R.string.share);break;default:break;}return super.onOptionsItemSelected(item);}(int msg){Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();}}

actiivty_main.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”xmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”android:layout_height=”match_parent”android:paddingBottom=”@dimen/activity_vertical_margin”android:paddingLeft=”@dimen/activity_horizontal_margin”android:paddingRight=”@dimen/activity_horizontal_margin”android:paddingTop=”@dimen/activity_vertical_margin”tools:context=”.MainActivity” ><TextViewandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:text=”@string/hello_world” /></RelativeLayout>

acitonbar_menu.xml

<menu xmlns:android=”http://schemas.android.com/apk/res/android” ><itemandroid:id=”@+id/share”android:showAsAction=”never”android:enabled=”false”android:title=”@string/share”/><itemandroid:id=”@+id/undo”android:icon=”@drawable/filtershow_button_undo”android:showAsAction=”always”android:title=”@string/undo”/><itemandroid:id=”@+id/redo”android:icon=”@drawable/filtershow_button_redo”android:showAsAction=”always”android:title=”@string/redo”/><itemandroid:id=”@+id/save”android:icon=”@drawable/filtershow_button_save”android:showAsAction=”always”android:title=”@string/save”/></menu>

注:showAsAction属性用来定义每个Action是如何显示的。

main.xml

<menu xmlns:android=”http://schemas.android.com/apk/res/android” ><item=>一个人目睹沿途的风景,拿着相机,拍下沿途上的风景,

自定义ActionBar的两种方式(静态动态)

相关文章:

你感兴趣的文章:

标签云: