画面サイズに関係なく、レイアウトを画面の右側に配置したい場合は、どうすればよいか知りたいです。
左側に重み1の空の要素を配置する必要がありますか?または、レイアウトがその親の右側に整列し、一定の割合を占めるように指定することは可能ですか?もしそうなら...どうやって?親はRelativeLayoutであることが理想的ですが、現在、私が試したすべてのソリューションが完全に間違った結果をもたらす原因となるソリューションを使用します。
私の知る限り、唯一の解決策は加重を設定することLinearLayout
です。ビューの重みをレイアウトのweightSumで割った値は、画面上の空き領域の割合を表します。
それぞれの幅が0dpに設定され、重みが1に設定された2つの子ビューを持つようにすることができます。
加重レイアウトは2つのフェーズで機能します。最初のフェーズではlayout_width
、各ビューのを測定します。layout_weight
2番目のフェーズでは、 /weightSum
関係に関する残りのスペース(合計レイアウト幅-各ビューの幅の累積合計)を分配します。
要素をいずれかの側に揃えるには、その親要素(おそらく要素を含むレイアウト)の重力を設定する必要があります。もちろん、あなたの場合、線形レイアウトの「重力」属性を右に設定します。レイアウトの「向き」を水平に変更する必要がある場合もあります
画面の半分だけを占めるようにするには、親レイアウトの「重みの合計」と子の「レイアウトの重み」を設定します。子の重みの合計は、親の重みの合計と等しくなければなりません。