ユーザーが写真を撮ったり、ギャラリーから写真を選択したりするアプリがあります。次のページでは、 を使用onGlobalLayout
して のサイズを決定しView
ます。ユーザーがギャラリーから画像を選択すると、View
サイズが に正しく返されonGlobalLayout
ます。ただし、ユーザーが写真を撮るとStatus Bar
、上部の が見えなくなります。次のアクティビティが表示されるとStatus Bar
、 が上からスライドして画面サイズが変更されますが、onGlobalLayout
はこれを考慮しないため、間違ったサイズのビューを返します。
これは Android のバグのようで、バグ レポートを提出することを検討しています。ただし、これに対する回避策はありますか?
例:
public class MyView extends View implements OnGlobalLayoutListener {
@Override
public void onGlobalLayout() {
Log.d("MyView", "Width: " + getWidth());
Log.d("MyView", "Height: " + getHeight());
}
}
上記のコードは、元の画面にステータス バーがあるかどうかに応じて、2 つの異なる幅と高さを返します。
ありがとう