4

weightSum = "5"LinearLayout(width&height match_parent)があり、水平方向にあるとします。

layout_weight = "1"で5つのTableLayout(幅と高さのwrap_content)を配置したため、すべてのTableLayoutはその親の1/5になります。

しかし、その後、各TableLayoutTextView(幅と高さのwrap_content)を配置すると、すべてがうまくいきません(私の観点から):

テキストが長すぎると、親レイアウト(この場合はTableLayout)が強制的に消費されるため、TextView、s ellipsize = "endを指定した場合でも、LinearLayout親からのTableLayoutの1/5の比率は尊重されなくなります。 "。

いくつかの調査を行った後、layout_widthの設定が他のすべての属性(weightSumなど)よりも強力であることがわかりました。

私の場合、TableLayoutのwidth=wrap_contentだけでなくlayout_weight="1"も設定しましたが、wrap_contentであるため、コンテンツの後に消費し、重みを尊重しない傾向があります。

誰かが私にいくつかの解決策を教えてもらえますか、私のテーブルレイアウトはどのように重みを尊重できますか?(私のレイアウトが比率を尊重せず、子テキストビューの長さの後に費やしたくないため)。

よろしくお願いします。これが私のコードです:

<!-- my code -->
< LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:weightSum="5" >

            <!-- table 1 -->

            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:ellipsize="end" 
                    android:maxLines="1"
                    android:text="test1test2test3test4test5"
                    android:textSize="20dp"/>

               <TableLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">


                </TableLayout>
            </TableLayout>

            <!-- table 2 -->

            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="test"
                    android:textSize="20dp" />

                <TableLayout 
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </TableLayout>
            </TableLayout>

            <!-- table 3 -->

            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1" >

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="test"
                    android:textSize="20dp" />

                <TableLayout 
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </TableLayout>
            </TableLayout>

            <!-- table 4 -->

            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="test"
                    android:textSize="20dp" />

                <TableLayout 
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </TableLayout>
            </TableLayout>

            <!-- table 5 -->

            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1" >

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="test"
                    android:textSize="20dp" />

                <TableLayout 
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </TableLayout>
            </TableLayout>

        </LinearLayout>
4

4 に答える 4

5

外部の TableLayout には、android:layout_width="wrap_content" の代わりに android:layout_width="0dp" を使用します。

android:layout_weight="1" も指定します。

自動サイズ変更のために android:weightSum="5" を削除します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal" >

  <!-- table 1 -->

  <TableLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:gravity="center_horizontal"
        android:text="test1 test2 test3 test4 test5"
        android:textSize="20dp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </TableLayout>
  </TableLayout>

<!-- table 2 -->

  <TableLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="test"
        android:textSize="20dp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </TableLayout>
  </TableLayout>

<!-- table 3 -->

  <TableLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="test"
        android:textSize="20dp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </TableLayout>
  </TableLayout>

<!-- table 4 -->

  <TableLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="test"
        android:textSize="20dp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </TableLayout>
 </TableLayout>

<!-- table 5 -->

  <TableLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="test"
        android:textSize="20dp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </TableLayout>
  </TableLayout>

</LinearLayout>

TableLayout 内に空があるのはなぜですか? テキスト全体を表示する場合は、android:ellipsize="none" を設定します。

于 2012-12-07T09:45:35.137 に答える
3

android:layout_width= "0dp"「」ではなく、5 つの親テーブル レイアウトすべてに対してwrap_content"

于 2012-12-07T09:49:56.410 に答える
0

すべてのテーブル レイアウトの layout_height と layout_width を「fill_parent」に設定します。そしてあなたはやったでしょう。

于 2012-12-07T09:39:13.967 に答える
0

1 つのテーブル レイアウトでテーブル行を使用し、テーブル レイアウトに weight_sum を使用できます

       ` <TableLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:weightSum="5"/>
            <TableRow 
                        your text 
             />
            <TableRow 
                        your text 
             />
        <TableRow 
                        your text 
             />
       <TableRow 
                        your text 
             />
       <TableRow 
                        your text 
             />
       </TableLayout>`
于 2012-12-07T09:46:12.627 に答える