その対処を備忘録として記載。
こう表示されてほしいのが…
ゲーム開始直後に手前の自分のカードの大きさや位置が乱れている。
カードをドラッグすると意図した大きさに戻る。
android6.0以前の端末では発生していない。
この自分のカードはgetLayoutInflaterでレイアウトを重ねて(inflate)表示している。
onCreateとonWindowFocusChangedや処理の順番の関係なのか?getLayoutParamsの反映のタイミングが変わったのか?いろいろ調査していた。
対処方法としては、該当の自分のカードのviewにgetLayoutParamsで幅と高さを設定後に、requestLayoutを呼んで更新すると正常に表示された。
こんな感じ。
こんな感じ。
hogeCard.getLayoutParams().width = width / 9;
hogeCard.getLayoutParams().height = height / 9;
//android7以降、初期表示がずれる対処
hogeCard.requestLayout();
android6.0以前では問題なかったのだが。
inflateするviewについては幅と高さを設定後にrequestLayoutを呼ぶということで理解した。
0 件のコメント:
コメントを投稿