13

アプリケーションでアクションバーを使用しています。
プログラムでActionBarの高さが必要なので、次を使用しています。

ActionBar.getHeight(); 


しかし、Heightの値は0になっています。では、どうすればActionBarの高さを取得できますか?

4

3 に答える 3

19

ActionBar.getHeight()
誰かが同じ問題に直面している場合は、このリンクが役立ちます。

ActionBarのサイズを明示的に制御したい場合、@birdyの答えはオプションですが、サポートドキュメントで見つけたサイズをロックせずに引き上げる方法があります。少し厄介ですが、私にとってはうまくいきました。コンテキストが必要です。この例はアクティビティで有効です。〜アンソニー

// Calculate ActionBar's height 
TypedValue tv = new TypedValue(); 
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
    actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics()); 
}
于 2012-12-12T09:54:31.970 に答える
5

以下のコードも役立ちます。getContext() をこれに変更する必要があるかもしれません

final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
                    new int[] { android.R.attr.actionBarSize });
mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();

答えはこの質問からコピーされます アクションバーのサイズは何ですか?

新しいバージョンの Android では、次のように簡単に実行できます。

getActionBar().getHeight()
于 2014-04-25T10:39:20.823 に答える
3

アクションバーの高さを見つける簡単な方法は、アクティビティの onPrepareOptionMenu メソッドからです。

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
           ....
           int actionBarHeight = getActionBar().getHeight());
           .....
    }
于 2013-10-26T11:55:20.793 に答える