0

画面の寸法をonCreateで取得する方法を知っています。その中の寸法を取得できるランナブルを作成していました。

問題は、デバイスを回転させると、寸法が正しく返されないように見えることです。

デバイスを回転させると発火するように見えるので、onConfigurationChanged() を実行することを考えていました。私は次のことをしようとしていましたが、有効なデータを提供しているとは思いません。

Rect r = new Rect();
Window win = getWindow();
win,getDecorView().getWindowVisibleDisplayFrame(r);
int height = r.height();
int width = r.width();

しかし、それらは正しくないようです。作成したアイテムを画面上で移動しようとしましたが、画面の端まで移動しません。私のドラッグ機能とは何の関係もないと思います。

寸法がおかしい気がします。

これはどのように行われますか?私は正しい道を進んでいますか?

4

1 に答える 1

0

私が作成した回避策は、 onConfigurationChange() 属性を持つバンドルを作成してから onCreate() を呼び戻すことでした。基本的に、これは新しい向きで再作成されます。

これは、この問題を回避するために私が行ったことであり、レイアウトが再レンダリングされるようにしました。

Bundle b = new Bundle();
b.putString("test","data here");
onCreate(b);
于 2012-10-09T18:59:02.023 に答える