Ответ 1
Существует ActionBarSherlock и android-actionbar.
Я ищу реализацию ActionBar в Android 2.1 до 2.3.4, где я могу динамически устанавливать содержимое панели действий из определенного действия, а также действия по щелчку кнопок из панели действий.
Есть ли какой-либо открытый исходный код этого типа, или кто-то может мне помочь, как начать с того же самого.
Существует ActionBarSherlock и android-actionbar.
Посмотрите http://android.cyrilmottier.com/?p=240 - Greendroid.
Если это не соответствует вашим потребностям, я предлагаю создать свой собственный "виджет", просто нужно несколько макетов и программно раздуть ActionBar.
У этого вопроса уже есть принятый ответ. Но у меня были некоторые проблемы с реализацией SherlockActionBar, и вы искали больше и нашли это. Мы можем использовать ActionBar
ниже уровня API уровня 11, следуя этому официальному руководству, представленному на официальном Android.
Прочитайте этот учебник с официального сайта Android.
Вам просто нужно включить
android-support-v7-appcompat.jar
поддержку jar в вашем проекте из вашего пути android-sdk-windows\extras\android\support\v7\appcompat\libs
на вашем диске. Затем вы можете использовать ActionBar ниже API 11 в Android.
Официальное руководство для Android здесь: Action Bar Android Official Шерлок-бар создавал проблемы для меня, а затем я получил это решение.
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);
}
}
}