android自定义Actionbar遇到的一点问题【titlebar以及thme的选择】

   android中actionbar的推出主要是为了自定义一个状态栏,当然功能不止如此。。例如可以和tab结合等等。。我在使用的时候遇到的问题如下:

      我定义一个BaseActivity用来做我所有activity的父类,在这个父类中我完成actionbar的初始化【自定义一个布局】,当然我的theme默认就是android:style/Theme.Holo.Light,在这个主题下默认是存在actionbar的,但是并不是我所有的子类都需要actionbar,有几个子类需要全屏来显示,起初我怎么设置notitleBar都会将actionbar置空。。悲剧了一会发现actionbar不是可以自动控制显隐么,,呵呵呵。。。直接来看 

package com.jone.sensorapp;

import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
/**
 * Parent activity of my app
 * @author jone
 *
 *  2014-3-14
 *  com.jone.sensorapp
 *
 */
public class BaseActivity extends Activity
{

	Context context;

    ImageButton button;
    TextView lableView;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		// TODO Auto-generated method stub
		super.onCreate( savedInstanceState );
		context = this;
		initActionBar();
	}


	private void initActionBar()
	{
		ActionBar actionBar = getActionBar();
		LayoutInflater inflater = getLayoutInflater();
		View view = inflater.inflate( R.layout.common_actionbar, null );
		button = (ImageButton) view.findViewById( R.id.ca_btn_back );
		lableView = (TextView) view.findViewById( R.id.ca_tv_title );
		button.setOnClickListener( new OnClickListener()
		{
			
			@Override
			public void onClick(View v)
			{
				finishActivityWithAnim();
				
			}
		} );
		actionBar.setDisplayShowCustomEnabled( false );
		actionBar.setDisplayShowHomeEnabled( false );
		//展示自定义actionbar,同时消除titlebar
		actionBar.setDisplayOptions( ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
				| ActionBar.DISPLAY_SHOW_TITLE );
		actionBar.setCustomView( view );
	}


	public void startActivityWithAnim(Intent intent)
	{
		startActivity( intent );
		overridePendingTransition( R.anim.activity_back_to_front, R.anim.activity_front_to_back );
	}


	public void finishActivityWithAnim()
	{
		finish();
		overridePendingTransition( R.anim.activity_front_to_back, R.anim.activity_back_to_front );
	}
	
	protected void setTitle(String title){
		lableView.setText( title );
	}

	/**
	 * 在子类中若不想展示actionbar,设置为false即可
	 * @param enable
	 */
	protected void setActionBarEnable(boolean enable){
		if(enable){
			getActionBar().show();
		}else {
			getActionBar().hide();
		}
	}
	
	
}
估计大家还有好的方法来解决,有的话留个言哈

你可能感兴趣的:(android,Actionbar,notitle)