まず、これは重複した質問ではありません。私の能力の限り、すべての (多くの) 類似の質問を試しました。このような問題の解決策は、特定のシナリオに固有の非常に主観的なものに見えます。
私のレイアウトは現在次のように表示されます。黒い四角は画像 (それぞれlogoとbody ) で、色は各レイアウトを表します:
私のXML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000"
android:padding="0px"
android:layout_margin="0px"
android:orientation="vertical">
<LinearLayout
android:layout_weight="16"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFF"
android:gravity="top|center"
android:orientation="horizontal">
<ImageView
android:id="@+id/logo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/logo"
android:layout_gravity="top|center" />
</LinearLayout>
<LinearLayout
android:layout_weight="4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00F"
android:gravity="bottom|left"
android:orientation="vertical">
<ImageView
android:id="@+id/body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/body"
android:layout_gravity="bottom|left" />
</LinearLayout>
</LinearLayout>
ここでは、親線形レイアウトがあり、2 つの子線形レイアウトに分割されていることがわかります。これは、ページのその部分内で画像を別の場所に配置する必要があるためです。
一言で言えば、ロゴを上に垂直に配置し、本文を左下に水平に配置する必要があります。
今、私が試したいくつかのこと:
RelativeLayout
リニアではなく使用- LinearLayout と ImageView の両方の切り替えと、それぞれを除外する
gravity
組み合わせlayout_gravity
- 幅と高さにはかなり自信
match_parent
がありますが、さまざまな組み合わせを試しましたwrap_content
私が理解するようになったこと:
gravity:top
親ビューの使用が必要ですorientation:horizontal
gravity:left
親ビューの使用が必要ですorientation:vertical
gravity
ビューの子に適用されますlinear_gravity
子がその親とどのように整列するかを適用しますgravity
親と子に同じ値を使用するとlinear_gravity
、同じ効果が得られる可能性があります(一方を使用する場合)?
うまくいけば、これで十分な情報です。これらのレイアウトがどのように機能するかを理解するのに非常に苦労しています。
助けてくれてありがとう!