如何自定义ActionBar显示标题在中间位置

     在Android3.0以后就开始引入了ActionBar了,这篇重点记录如何自定义ActionBar让标题显示在中间的位置。虽然android手机有自带的返回键,不过当今很多应用还是添加actionbar显示标题在中间,在左侧加入一个返回按钮。

    添加一个ActionBar很简单,在AndroidManifest.xml文件中指定Application或者Activity的theme为Theme.Holo或其子类即可。添加完ActionBar后,要实现题目所述功能,首先需要自定义你自己需要的标题文件布局,这里,我给出一个示例(action_bar_title):



    
    
    
    
    


接下来就可以在activity中直接实现需求:

package com.example.actionbar;

import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		ActionBar actionBar = getActionBar();
		actionBar.setDisplayHomeAsUpEnabled(true);
		
		ActionBar.LayoutParams lp =new ActionBar.LayoutParams(
		          ActionBar.LayoutParams.MATCH_PARENT,
		          ActionBar.LayoutParams.MATCH_PARENT,
		          Gravity.CENTER);
		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View titleView = inflater.inflate(R.layout.action_bar_title, null);
		actionBar.setCustomView(titleView, lp);
		
		actionBar.setDisplayShowHomeEnabled(false);//去掉导航
		actionBar.setDisplayShowTitleEnabled(false);//去掉标题
		actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
		actionBar.setDisplayShowCustomEnabled(true);
		
		ImageButton imageBtn = (ImageButton) actionBar.getCustomView().findViewById(R.id.image_btn);
		
		imageBtn.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Toast.makeText(MainActivity.this, "返回", Toast.LENGTH_SHORT).show();
			}
		});
	}
}

在activity中通过ActionBar actionBar = getActionBar();获得ActionBar实例,然后通过actionBar.setCustomView(titleView, lp);设置自己定义的标题布局。


代码链接:http://download.csdn.net/detail/tan313/8593441

你可能感兴趣的:(Android笔记)