3

垂直線形レイアウトの重量について混乱しています。ウェイトは水平線形レイアウトでうまく使用できますが、垂直線形レイアウトでの使用方法です。テキストビューとテキストフィールドを含むライナーレイアウト(垂直)を含む相対レイアウトがあります。次の配置が必要です。

赤い線=相対レイアウト、緑の線=線形レイアウト(垂直)、青=テキストビュー、黄色=texfields

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" >
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/editText2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="numberDecimal" />
    </LinearLayout>
</RelativeLayout>
4

5 に答える 5

2

layout_weigthパラメーターを使用している場合は、match_parentの線形レイアウトの方向に関連するパラメーターが必要です。

それで:

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
于 2012-10-17T07:00:09.913 に答える
1

-まず、を使用せずに直接その配置を行うことができます。Relative layout LinearLayout

-次に、に子レイアウトを設定する場合は、uで示したように、でRelative layout使用TableRowし、要素を配置することをお勧めします。Relative layout

于 2012-10-17T07:00:10.617 に答える
1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" >
     <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_margin="10dp">
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="numberDecimal" />

    </LinearLayout>
    <LinearLayout

        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/editText2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="numberDecimal" />

    </LinearLayout>
     <LinearLayout

        android:id="@+id/linearLayout3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="numberDecimal" />


    </LinearLayout>
     <LinearLayout

        android:id="@+id/linearLayout4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/editText4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="numberDecimal" />


    </LinearLayout>
    </LinearLayout>
</RelativeLayout>
于 2012-10-17T07:49:59.953 に答える
0

これにはを使用することをお勧めしTableLayoutます。私がこれを正しく理解している場合は、水平方向に重みを適用しようとしているので、に通常の列がありますLinearLayout。そうだとすれば、あなたはこのようにそれをすることは決してないでしょう。

LinearLayoutすべての要素を水平方向または垂直方向に配置します。両方の方法でそれを行うことはできません。したがって、目標を達成するには、どのような場合でも別の行コンテナが必要になります。

TableLayoutは、その固有の行コンテナを使用して設計されているだけでなく、管理するために重みを必要とせずに、この種のレイアウトの列サポートを組み込んでいます。

于 2013-11-06T11:09:40.363 に答える
0

私の場合、垂直方向の重みの問題がある小さなゲームの後、AndroidはViewGroupのコンテンツをラップアラウンドし、コンテンツのサイズよりも大きいウェイトを設定しても、コンテンツをラップアラウンドして与えることを理解しました他のビューへの余分なスペース。

解決策は、ニーズに応じてマージンの上部または下部を追加することです。

于 2014-07-30T09:09:17.233 に答える