Android Action Bar

2019-02-06 17:51发布

I am looking for an implementation of the ActionBar in Android 2.1 to 2.3.4 where i can dynamically set the contents of the action bar from the particular activity and also the actions on click of the buttons from the action bar.

Is there any open source lib of this sort or can someone help me how to start on building the same.

4条回答
Ridiculous、
2楼-- · 2019-02-06 18:22

Have a look at http://android.cyrilmottier.com/?p=240 - Greendroid.

If it doesn't fit your needs, I suggest creating your own "widget", just need some layouts and inflate the ActionBar programmatically.

查看更多
太酷不给撩
3楼-- · 2019-02-06 18:28
狗以群分
4楼-- · 2019-02-06 18:28

This question already has an accepted answer. But I was having some problems with SherlockActionBar implementation and searched more and found this. We can use ActionBar below API level 11 following this official tutorial given at official Android.

Read this tutorial from Android's official site. Action Bar Android You just need to include android-support-v7-appcompat.jar support jar in your project from your android-sdk-windows\extras\android\support\v7\appcompat\libs path on your disk. Then you can use ActionBar below API 11 in Android.

Official Android Tutorial is here: Action Bar Android Official Sherlock bar was creating issues for me then I got this solution.

查看更多
男人必须洒脱
5楼-- · 2019-02-06 18:31
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);

        }

    }



}
查看更多
登录 后发表回答