我正在寻找 Android 2.1 到 2.3.4 中 ActionBar 的实现,我可以在其中动态设置来自特定活动的操作栏的内容,以及单击操作栏中的按钮时的操作。
是否有任何此类开源库,或者有人可以帮助我如何开始构建相同的库。
我正在寻找 Android 2.1 到 2.3.4 中 ActionBar 的实现,我可以在其中动态设置来自特定活动的操作栏的内容,以及单击操作栏中的按钮时的操作。
是否有任何此类开源库,或者有人可以帮助我如何开始构建相同的库。
看看http://android.cyrilmottier.com/?p=240 - Greendroid。
如果它不符合您的需求,我建议您创建自己的“小部件”,只需要一些布局并以编程方式扩展 ActionBar。
这个问题已经有一个公认的答案。但是我在 SherlockActionBar 实现方面遇到了一些问题,并进行了更多搜索并找到了这个。我们可以按照官方 Android 提供的官方教程使用ActionBar
低于API 级别 11 。
从 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);
}
}
}