0

まず、(hierarchyviewerからの)画像:

良いボタンと悪いボタン

同じサイズにしたいテキストの長さが異なる2つのボタンがあります。画像では、これが上部で機能していることがわかります。ただし、ボタンの間にスペースが必要なので、3番目と4番目のボタンには、layout_margin属性を追加して少しスペースを空けます。混沌が続く。4番目のボタンは同じサイズのままで、適切なマージンを追加します。しかし、3番目のボタンは右側にマージンを追加していないようであるため、幅が失われます。

調整後にマージンが適用されているので、実際には、それを完全に説明するプロセスを思い付くことができないのだと思います。

私が欲しいのは:

  • このようなものがどのように機能するかを理解するために-ビューのレイアウトは私には直感的ではないように見え、この種のものを修正するために属性をランダムに変更しないポイントに到達することは想像できません。核心を超える包括的なチュートリアルはありますか?

  • 余白のある相対レイアウトの異なる長さのテキストを持つ2つの等しい長さのボタン。アクティビティに関する他のすべてのビューを配置するための相対的なレイアウトが必要です。

コードは以下のとおりです。

<?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"
    >
    <Button
        android:id="@+id/goodThis"
        android:text="Short text"
        android:background="@drawable/button_red" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/goodThat"
    />
    <Button
        android:id="@+id/goodThat"
        android:text="Longer text"
        android:background="@drawable/button_green" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"
        android:layout_below="@+id/goodThis"
    />

    <Button
        android:id="@+id/badThis"
        android:text="Short text"
        android:background="@drawable/button_red" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/goodThat"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/badThat"
        android:layout_margin="3dp"
    />
    <Button
        android:id="@+id/badThat"
        android:text="Longer text"
        android:background="@drawable/button_green" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"
        android:layout_below="@+id/badThis"
        android:layout_margin="3dp"
    />
</RelativeLayout>
4

1 に答える 1

3

私の回答を上記のコメントよりも回答として表現するために、RelativeLayout の経験から次のことを学びました。

1) 前方 ID 参照を排除します。これにより、その方法を理解するのが少し難しくなる可能性がありますが、このような参照を解決するには、実行時に少なくとも 2 つのレイアウト仕様のパスが必要であり、複雑になる可能性があることがわかります。

2) 通常、より良い結果を得るために、layout_marginTop などの特定のマージン/パディング属性を使用します。ブランケット「layout_margin」を使用すると、3 番目と 4 番目のボタンがわずかに右にオフセットされます。これは、おそらくあなたが求めている外観ではありません。ボタンの間隔を空けるために marginTop だけを使用してみてください。

于 2012-05-18T12:03:00.930 に答える