我正在寻找一个Android 2.1到2.3.4中实现ActionBar的方法,可以动态地从特定活动设置操作栏的内容,并在单击操作栏按钮时执行相应的操作。
是否有任何这种类型的开源库,或者有人能帮助我开始构建这个功能。
我正在寻找一个Android 2.1到2.3.4中实现ActionBar的方法,可以动态地从特定活动设置操作栏的内容,并在单击操作栏按钮时执行相应的操作。
是否有任何这种类型的开源库,或者有人能帮助我开始构建这个功能。
有 ActionBarSherlock 和 android-actionbar 两种。
这个问题已经有了一个被接受的答案。但是我在SherlockActionBar的实现中遇到了一些问题并做了更多的搜索,找到了这篇文章。我们可以在Android官方提供的这个教程中使用API 11以下的ActionBar
。
从Android官方网站查看这个教程。
你只需要在项目中包含android-support-v7-appcompat.jar
支持jar文件,这些文件来自于你磁盘上的路径android-sdk-windows\extras\android\support\v7\appcompat\libs
。然后你就可以在Android API 11以下使用ActionBar。
官方Android教程在这里: Action Bar Android Official Sherlock bar对我产生了问题,然后我找到了这个解决方案。
package com.util;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.LayoutParams;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.android.volley.RequestQueue;
public class BaseActivity extends ActionBarActivity {
public View mCustomView;
public static SessionManager session;
public ProgressDialog pDialog;
public ConnectionDetector checkConnection;
RequestQueue queue;
AlertDialog alertDialog;
private boolean isActionBarEnable;
public Typeface font_bold, font_regular, font_light, font_thin;
public ImageView ivBack,ivHome,iv_history;
public TextView tvTitle;
public ProgressBar progressForWebView;
public BaseActivity() {
}
public BaseActivity(boolean isActionBarEnable) {
this.isActionBarEnable = isActionBarEnable;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
if (isActionBarEnable) {
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
ivBack = (ImageView) mCustomView.findViewById(R.id.custom_actionbar_iv_back);
iv_history = (ImageView) mCustomView.findViewById(R.id.custom_actionbar_iv_history);
ivHome = (ImageView) mCustomView.findViewById(R.id.custom_actionbar_iv_home);
tvTitle = (TextView) mCustomView.findViewById(R.id.custom_actionbar_title);
progressForWebView = (ProgressBar) mCustomView.findViewById(R.id.custom_actionbar_progressbar);
actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(mCustomView, new ActionBar.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
Toolbar parent = (Toolbar) mCustomView.getParent();
parent.setContentInsetsAbsolute(0, 0);
}
}
}