30

Showcaseライブラリを使用して、アプリケーションの機能をユーザーに説明しています。ある時点でActionBar、ユーザーに別の機能を提示するために全体を薄暗くする必要があります。

そのためsetAlpha(float num)に、Viewクラスの を使用しています。そのためには、私の実際のビューインスタンスを取得する必要がありますActionBar

ところで、私support-7-appcompatは ActionBar が古いシステムをサポートするライブラリを使用しています。

アップデート

それまでの間、カスタム ビューを構成し、ActionBar以下を使用して追加すると、このオプションが見つかりました。

getSupportActionBar().setCustomView(v);

次に、 の を取得するViewには、次のActionBarようにします。

(View) activity.getSupportActionBar().getCustomView().getParent().getParent()

それを行うためのより簡単または簡単な方法はありますか?

4

5 に答える 5

8

このソリューションは、通常の Activity と ActionBarActivity の両方を処理する、より完全なものだと思います。

ツールバーを使用してアクションバーが設定された場合も処理しますが、作成したアクティビティに実装する必要があります。

public static View getActionBarView(final Activity activity) {
    if (activity instanceof IToolbarHolder)
        return ((IToolbarHolder) activity).getToolbar();
    final String packageName = activity instanceof ActionBarActivity ? activity.getPackageName() : "android";
    final int resId = activity.getResources().getIdentifier("action_bar_container", "id", packageName);
    final View view = activity.findViewById(resId);
    return view;
}

public interface IToolbarHolder {
    public android.support.v7.widget.Toolbar getToolbar();
}
于 2014-12-08T08:38:45.157 に答える