1

ユーザーが項目をクリックした後、単一のリスト項目を表示しようとしています。しかし、テキストが多すぎるとレイアウトがめちゃくちゃになることに気付きました。途中まで押し込まれたり、画面の右側に完全に押し込まれたりすることがあります。なぜこれが起こっているのかわかりません。この問題を解決するにはどうすればよいですか? 問題なくポップアップ ダイアログにまったく同じレイアウトがあることに注意してください。

これは私のXMLコードです:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TableLayout
        android:id="@+id/add_spot_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="1"
        android:stretchColumns="1" >

        <TableRow
            android:layout_marginBottom="1sp"
            android:layout_marginTop="2sp" >

            <TextView
                android:id="@+id/nameDetails"
                android:layout_width="fill_parent"
                android:textSize="25sp"
                android:textStyle="bold" />
        </TableRow>

        <!-- separator -->

        <View
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:background="@android:color/darker_gray" />

        <TableRow
            android:layout_marginBottom="2sp"
            android:layout_marginTop="2sp" >

            <TextView
                android:layout_marginLeft="5sp"
                android:text="@string/distance"
                 />

            <TextView android:id="@+id/distanceDetails" />
        </TableRow>

        <TableRow
            android:layout_marginBottom="2sp"
            android:layout_marginTop="2sp" >

            <TextView
                android:layout_marginLeft="5sp"
                android:text="@string/address"
                 />

            <TextView android:id="@+id/addrDetails" />
        </TableRow>

        <TableRow
            android:layout_marginBottom="2sp"
            android:layout_marginTop="2sp" >

            <TextView
                android:layout_marginLeft="5sp"
                android:text="@string/type"
               />

            <TextView android:id="@+id/typeDetails" />
        </TableRow>

        <TableRow
            android:layout_marginBottom="2sp"
            android:layout_marginTop="2sp" >

            <TextView
                android:layout_marginLeft="5sp"
                android:text="@string/terrain" />

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

                <RatingBar
                    android:id="@+id/terrainDetails"
                    style="?android:attr/ratingBarStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:isIndicator="true"
                    android:max="5"
                    android:numStars="5"
                    android:stepSize="1" />
            </RelativeLayout>
        </TableRow>

        <TableRow>

            <TextView
                android:layout_marginLeft="5sp"
                android:text="@string/difficulty" />

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

                <RatingBar
                    android:id="@+id/difficultyDetails"
                    style="?android:attr/ratingBarStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:isIndicator="true"
                    android:max="5"
                    android:numStars="5"
                    android:stepSize="0.1" />
            </RelativeLayout>
        </TableRow>

        <TableRow
            android:layout_marginBottom="2sp"
            android:layout_marginTop="2sp" >

            <TextView
                android:layout_marginLeft="5sp"
                android:text="@string/description" />

            <TextView
                android:id="@+id/descDetails"
                android:gravity="top"
                android:lines="2"
                android:maxLines="2"
                android:scrollHorizontally="false" />
        </TableRow>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:background="@android:color/darker_gray" />
    </TableLayout>

</ScrollView>

ここに、私が何を意味するかを示すスクリーンショットをいくつか示します。

あるべき姿:

ここに画像の説明を入力

あってはならないこと:

画面の右側にプッシュ

ここに画像の説明を入力

説明のテキストが多すぎます。画面から消えます

ここに画像の説明を入力

半分だけ押した。

ここに画像の説明を入力

4

2 に答える 2

2

の列のサイズは、TableLayoutその最大の内容によって決まります。

レイアウトを整理した方法では、タイトルnameDetails最初の列にあります。
気に入らない場合は、2 番目の列がタイトルの最後にきちんと配置されていることに気付くでしょう。

これを解決するには、表のレイアウトからタイトルを移動するか、android:layout_span属性を使用して 2 列にまたがらせます。

于 2013-03-16T01:26:03.337 に答える
1

@+id/nameDetails表の最初の行にタイトルがあるため、これが起こっていると思います。<textview>テーブルの左側のサイズを決定するときは、このセルの長さが含まれます。

そのテキストビューをテーブルビューから移動できますか?

于 2013-03-16T01:14:51.443 に答える