0

私のアプリには、から派生しActivityて使用するカスタムダイアログがRelativeLayoutあり、すべての位置とプロパティはXMLファイルによって処理され、コードには含まれていません。レイアウトは希望どおりですが、ダイアログ内の一部の項目の長さのため、情報の一部の行が次の行に折り返されます。これらの場合、ダイアログの[閉じる]ボタンが誰かがその上に座っているように見えるという事実を除いて、これは問題ではありません。

これは、ボタンが正常であることを示すエミュレーターのスクリーンショットですが、ダイアログの右側に突き当たらないように、説明テキストの右側にパディングが必要です。

良いボタンですが、右マージンが必要です

これを見て、私android:layout_marginRight="5dp"は自分のマージンを取得することを期待してレイアウトファイルに追加しましたが、それはそう思われます-そして私は自分のラップを取得します-しかしボタンは正しくありません。説明が行を折り返しているため、ダイアログの高さは期待どおりに変更されていません。

良いラッピングですが、ボタンが押しつぶされています

これが私の完全なレイアウトXMLです。初めて使っRelativeLayoutたので、見落としているシンプルなものだといいのですが。

    <?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">
        <ImageView
                android:id="@+id/achievement_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="7dp"
                android:contentDescription="@string/achievement_icon" />
        <TextView
                android:id="@+id/achievement_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:textColor="#ffffff"
                android:textStyle="bold"
                android:layout_toRightOf="@+id/achievement_icon" />
        <TextView
                android:id="@+id/achievement_gamerscore"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffff"
                android:textStyle="bold"
                android:layout_marginLeft="5dp"
                android:layout_below="@+id/achievement_name"
                android:layout_toRightOf="@+id/achievement_icon" />
        <TextView
                android:id="@+id/achievement_description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="7dp"
                android:layout_marginRight="5dp"
                android:layout_alignLeft="@+id/achievement_icon"
                android:layout_below="@+id/achievement_icon" />
        <TextView
                android:id="@+id/achievement_earned"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="7dp"
                android:layout_marginRight="5dp"
                android:layout_alignLeft="@+id/achievement_description"
                android:layout_below="@+id/achievement_description" />
        <Button
                android:id="@+id/cancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="7dp"
                android:layout_centerHorizontal="true"
                android:text="@string/button_close"
                android:layout_below="@+id/achievement_earned" />
    </RelativeLayout>
4

1 に答える 1

0

問題は、ボタンのスペースが不足していることです。

ボタン用のスペースを確保するには:

1.)ボタンを右上に移動して、xのように表示できます。

2.)説明TextViewのサイズを制限し、TextViewをscrollviewで囲むことにより、垂直方向にスクロールするように設定できます(ScrollViewを必要とせずにこれを行うためのよりクリーンな方法ですが、私のドリフトが発生します。

3.)ボタンの高さを低くします。

また、画面の解像度や密度が異なる電話でアプリの電話がどのように表示されるかについても注意が必要です。したがって、UIを設計するときは、このことに注意してください。

私が意味する例は次のとおりです。

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical"
    android:fillViewport="true">

     <TextView
            android:id="@+id/achievement_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="7dp"
            android:layout_marginRight="5dp"
            android:layout_alignLeft="@+id/achievement_icon"
            android:layout_below="@+id/achievement_icon" />

</ScrollView>

ただし、コンテンツを折り返すのではなく、「achievement_description」テキストビューの高さを特定の値に制限する必要があります。

于 2012-05-06T17:38:59.893 に答える