美化你的标题栏—ActionBar(1)添加按钮使用

1.谷歌为啥要开发出actionbar

因为相比较苹果的UI安卓UI太丑了,所以在ui导航涉及进行了一系列的改革,并提供更为丰富的导航效果。

2.怎么使用actionbar

现在V7包里是能兼容3.0一下我将在下一节讲 V4包里是自带actionbar的

(1)一个标题,应该能隐藏或者显示 应该怎么使用

我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。


(2)通过代码
我们也可以通过在代码中调用show()或者hide()方法来相应的显示或者隐藏ActionBar

(3)在我们使用actionBar.hide();方法是系统默认会将ActionBar占用的空间分配给界面,此时显示的界面将会重新绘制。
同样调用actionBar.show();时也会重新绘制界面。如果我们一个程序需要频繁的显示或者隐藏ActionBar的话,这样
就不会有良好的效果。Google提供给一个属性可以让ActionBar浮在界面上,当然你可以让ActionBar的背景为透明,
这样会有良好的体验效果。



我们开始写一个demo

1、通过程序动态布局

package com.example.actionbar;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

public class MainActivity extends Activity {

	private ActionBar actionBar;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 第一步 跟Fragment一起对比下 用法就很明朗了
		actionBar = getActionBar();
		// 第二步显示
		actionBar.show();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		// 添加菜单项,可以看的出来这个取名还是比较人性化的
		MenuItem add = menu.add(0, 0, 0, "sb");
		MenuItem del = menu.add(0, 0, 0, "2b");
		MenuItem save = menu.add(0, 0, 0, "逗逼");
		// 绑定到actionbar
		//SHOW_AS_ACTION_IF_ROOM 显示此项目在动作栏按钮如果系统决定有它。 可以用1来代替
		add.setShowAsAction(1);
		del.setShowAsAction(1);
		save.setShowAsAction(1);
		return super.onCreateOptionsMenu(menu);
	}
}

 
2、通过Menu.xml文件布局

R.res.menu.main.xml



 
    
 
    

 android:orderInCategory="1"  item优先级


package com.example.actionbar;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

public class MainActivity extends Activity {

	private ActionBar actionBar;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
//		// 第一步 跟Fragment一起对比下 用法就很明朗了
//		actionBar = getActionBar();
//		// 第二步显示
//		actionBar.show();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

//		// 添加菜单项,可以看的出来这个取名还是比较人性化的
//		MenuItem add = menu.add(0, 0, 0, "sb");
//		MenuItem del = menu.add(0, 0, 0, "2b");
//		MenuItem save = menu.add(0, 0, 0, "逗逼");
//		// 绑定到actionbar
//		//SHOW_AS_ACTION_IF_ROOM 显示此项目在动作栏按钮如果系统决定有它。
//		add.setShowAsAction(1);
//		del.setShowAsAction(1);
//		save.setShowAsAction(1);
//		return super.onCreateOptionsMenu(menu);
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.main, menu);
		return true;
		
	}
}
主要是靠填充 将XML填充到actionbar里面去

你可能感兴趣的:(actionbar,安卓基础的回顾)