0

以下のxmlに示されているボタンの1つをクリックすると、ボタンのテキストが1行下にジャンプするという問題があります。ボタンが 1 行の場合、テキストは表示されません。ボタンが 2 行の場合、ボタンのボタンには最初の行のみが表示されます。

onClick メソッドの何もレイアウトを変更しません。

XMLはこちら

  <?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:id="@+id/layout_main">


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

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

.. a few other layouts and controls that works fine 



        <TableLayout
                android:id="@+id/tableLayout276"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TableRow
                    android:id="@+id/TableRow10"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="left"
                    android:gravity="center"
                    android:orientation="vertical" >



                    <Button
                        android:id="@+id/BtnRet"
                        android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:text="Ret"
                        android:gravity="center"
                        android:textSize="18dp" />      

                    <Button
                        android:id="@+id/BtnVisningsType"
                        android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:text="Decimaltal"
                        android:gravity="center"
                        android:textSize="18dp" />

                    <Button
                        android:id="@+id/BtnFunktioner"
                        android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:text="Funktioner"
                        android:gravity="center"
                        android:textSize="18dp" />      
            </TableRow>
        </TableLayout>

.. a few other layouts and controls that works fine


</LinearLayout>
</ScrollView>
</LinearLayout>

ここで、ボタンのlayout_widthをwrap_contentに変更すると、すべて正常に機能します(テキストビューを変更すると、テキストビューの下のボタンのテキストが下に移動します。助けてください!)-ボタンを除いて、明らかに同じではありません幅があり、乱雑に見えます。

なぜこれが起こるのか、テキストを保持してボタンのサイズを決定する方法を知っている人はいますか?

4

1 に答える 1

2

これによりレイアウトが複雑になりますが、解決策になる可能性があります。

テーブルの行にLinearLayoutを追加し、重みを使用してボタンの正確なレイアウトを制御します。このようなもの:

<TableRow
                android:id="@+id/TableRow10"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:gravity="center"
                android:orientation="vertical" >

    <LinearLayout android:layout_height="match_parent"
                  android:layout_width="match_parent"
                  android:weightSum="3"
                  android:orientation="horizantal"/>

                <Button
                    android:id="@+id/BtnRet"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:text="Ret"
                    android:gravity="center"
                    android:textSize="18dp" />      

                <Button
                    android:id="@+id/BtnVisningsType"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:text="Decimaltal"
                    android:gravity="center"
                    android:textSize="18dp" />

                <Button
                    android:id="@+id/BtnFunktioner"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:text="Funktioner"
                    android:gravity="center"
                    android:textSize="18dp" />      

    </LinearLayout>

</TableRow>

警告:

  • パフォーマンスに打撃を与える可能性があります
  • メモリから入力しました。タイプミスは許してください。
  • 未検証
  • パディング/マージンを使用して正確なサイズを調整します

RelativeLayoutも機能する可能性があります。

于 2012-11-07T11:03:19.620 に答える