0

getDecorView().getWidth()UI のいくつかの要素のサイズを決定するために使用しています。はい、これがハックなアプローチであることはわかっていますが、実際に使用可能な画面の幅を決定する唯一の信頼できる方法であることがわかりました (たとえば、画面の右側に表示されているナビゲーション バーを差し引く)。 Kindle Fire HD の横向き)。問題は、デバイスの向きが変わったときに、直後にこのメソッドを呼び出すと、値が正しくないことです。この同じメソッドをわずか 1 秒後に (遅延したランナブルを投稿することによって) 呼び出すと、正しい値が返されますが、このアプローチはハックの上にハックを重ねたようなものです。装飾ビューが正しい値を返す「準備ができている」ことを確認する方法はありますか?

4

1 に答える 1

0

アクティビティの runOnUiThread を使用して UI スレッドでリクエストを実行すると、間違っても構わないと思いますが、UI スレッドで順番にしか発生しないため、アニメーションが完了するまでこの呼び出しはキューに入れられます。

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        //code that needs to run on UI thread
    }
});
于 2012-11-15T22:45:27.703 に答える