ActionBar
アクティビティが作成されるたびに(Sherlockを使用して)高さを取得しようとしています(特に、ActionBarの高さが変更される可能性がある回転時の構成変更を処理するため)。
このためActionBar.getHeight()
に、ActionBar
が表示されている場合にのみ機能する方法を使用します。
最初のアクティビティが初めて作成されたときgetHeight()
に、onCreateOptionsMenu
コールバックを呼び出すことができます。ただし、このメソッドは後で呼び出されません。
だから私の質問は、いつgetHeight()を呼び出して、0を返さないことを保証できるかということです。または、それが不可能な場合、ActionBarの高さを設定するにはどうすればよいですか?
@birdyの答えは、ActionBarのサイズを明示的に制御したい場合のオプションですが、サポートドキュメントで見つけたサイズをロックせずにプルアップする方法があります。それは少し厄介ですが、それは私のために働いています。コンテキストが必要です。この例はアクティビティで有効です。
// Calculate ActionBar height
TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
Int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
Kotlin:
val tv = TypedValue()
if (requireActivity().theme.resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
val actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, resources.displayMetrics)
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加