1

次のコードで TextView が画面の左上隅に配置される理由がわかりません。私のlayout_gravityの理解に基づいて、代わりにTextViewを画面の下部に配置する必要があるようです。

誰かが私のためにこれに光を当てることができますか? この線形レイアウトは、非常に単純に見えますが、多くの頭痛の種になりました。これほど単純に見えるものを、どうして把握するのが王族の苦痛になるのでしょうか?

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="#FF0000">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello"
            android:layout_gravity="bottom"
            android:background="#FFF"
            />    

    </LinearLayout>
4

4 に答える 4

2

垂直方向に設定された LinearLayout は、垂直方向の配置を参照するすべての layout_gravity パラメーターを無視します。たとえば、「bottom」は機能しませんが、「center-horizo​​ntal」は機能します。(レイアウト内の各ビューがレイアウト内の他のビューの下に配置されるように、常に垂直方向の配置が行われます。)

相対的なレイアウトが良いかもしれませんし、おそらくあなたが望むものにかなり近いこのコードを使用することもできます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FF0000"
>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        android:gravity="bottom"
        android:layout_weight="1.0"
        android:background="#FFF" />

</LinearLayout>

編集このブログでさらに説明しています。

于 2012-04-21T17:06:25.533 に答える
0

それがレイアウトの単純さである場合は、LinearLayoutでラップしないでください。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="#FFF"
    android:text="HELLO HELLO" />

ただし、ラップする必要がある場合は、垂直方向を削除します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FF0000" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="#FFF"
        android:text="HELLO HELLO" />

</LinearLayout>
于 2012-04-21T16:41:02.203 に答える
0
 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FF0000">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello"
            android:layout_alignParentBottom="true"
            android:background="#FFF"
            />    

    </RelativeLayout>

相対的なレイアウトを使用できますが、下を簡単に揃えることができます

于 2012-04-21T16:22:10.093 に答える
0

このコードはあなたが望むことをすると思います:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="bottom"
    android:background="#FF0000">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        android:background="#FFF"
        />    

</LinearLayout>

テキストビューを中央に表示したい場合は、次を使用できます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="bottom"
    android:background="#FF0000">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        android:layout_gravity="center"
        android:background="#FFF"
        />    

</LinearLayout>

これがお役に立てば幸いです。

于 2012-04-21T16:33:44.927 に答える