Android动作栏

10

我正在寻找一个Android 2.1到2.3.4中实现ActionBar的方法,可以动态地从特定活动设置操作栏的内容,并在单击操作栏按钮时执行相应的操作。

是否有任何这种类型的开源库,或者有人能帮助我开始构建这个功能。


1
这个链接很有用。 - Suresh Kerai
4个回答

18

谢谢Commonsware。喜欢你在GitHub上的代码库 :) - Harsha M V

6
请查看 http://android.cyrilmottier.com/?p=240 - Greendroid。
如果这个不符合你的需求,我建议你创建自己的“小部件”,只需要一些布局并在代码中动态填充操作栏即可。

3

这个问题已经有了一个被接受的答案。但是我在SherlockActionBar的实现中遇到了一些问题并做了更多的搜索,找到了这篇文章。我们可以在Android官方提供的这个教程中使用API 11以下的ActionBar

从Android官方网站查看这个教程。 Action Bar 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对我产生了问题,然后我找到了这个解决方案。


这是一个古老的问题 :D - Harsha M V
是的,我知道。但是访问者将能够从多个选项中选择在他们的应用程序中实现的功能。 - Master
@Hoosier 请不要发布重复的答案。如果问题相同,请标记为重复。如果不是,请根据问题调整您的答案,而不是发布多个相同的答案。 - ChrisF
好的,我会处理的。我只是到处发布了它,因为每个人都问同样的问题。现在我将它们全部标记为重复。 - Master

0
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);

        }

    }



}

1
尝试添加一些描述 - Spider man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接