FrameLayout内でLinearLayoutを作成していますが、LinearLayoutはFrameLayoutの中央に配置する必要があります。 FrameLayoutが650dpを超え、LinearLayoutの幅を650dpに設定すると、線形レイアウトの左右に余裕ができます。親が650dpを超える場合、Linearlayoutの幅を650dpにする、そうでない場合は親を一致させる
親FrameLayoutが650dp未満の場合は、親線に合わせて線幅を設定します。
親のFrameLayoutの幅が向きの変更に応じて変化するため、OnLayoutChangeListener、OnGlobalLayoutListener、OnAttachStateChangeListenerを使用して、画面の回転後の幅を検出しようとしましたが、いずれも機能しません。
親ビューの幅を見つけようとすると正しい軌道に乗っていますか?
または、ConstraintLayoutとして親ビューを使用し、可能な場合は650内のLinearLayoutを作成し、幅が足りない場合は親に展開できますか?
(親ビューは必ずしも画面全体を占有するとは限らないため、sw600またはsw600-landなどの異なるレイアウトresフォルダでは異なる値を使用することはできません)。
'ConstraintLayout'の子(' CoordinatorLayout'ではなく)は 'app:layout_constraintWidth_max '。 –