3

楽しい部分から始めましょう。これがトラブルのグラフィックです。水平に、すべてが美しいです。

沈んだボタン 真ん中のボタンは、他の3つと揃えたいです。基本は次のとおりです。

  1. 全体的に、それは相対的なレイアウトです
  2. この relativelayout 内では、3 つのボタンを含む水平方向の線形レイアウトです。
  3. 中央のボタンの「沈み込み」は、2 行のテキストと 100% 相関しています。1 行に変更すると、適切に配置されます。
  4. ボタンの指定された高さは沈み込みとは関係ありません。現在のサイズの 2 倍以上 (現在の 70 から 170) でも、まったく同じ動作 (および動作のサイズ) が表示されます。
  5. 「custom_button」の背景は効果がありません。それらをすべて背景なしに変更すると、ストックのように見えるボタンで、同じ配置が発生します

XML は次のとおりです (relativelayout 内の linearlayout のみ):

<LinearLayout 
android:id="@+id/wideButtons"
android:layout_below="@+id/buttonClockFinish"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="horizontal">

    <Button
    android:id="@+id/buttonLog"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:padding="0dp"
    android:layout_marginRight="3dp"
    android:layout_width="fill_parent"
    android:background="@drawable/custom_button"
    android:text="View Log" />

    <Button
    android:id="@+id/buttonLocation"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:padding="0dp"
    android:layout_marginLeft="3dp"
    android:layout_marginRight="3dp"
    android:layout_width="fill_parent"
    android:background="@drawable/custom_button"
    android:text="Location\nD1-RS" />

    <Button
    android:id="@+id/buttonHelp"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:padding="0dp"
    android:layout_marginLeft="3dp"
    android:layout_width="fill_parent"
    android:background="@drawable/custom_button"
    android:text="Help" />

</LinearLayout>

では、一体なぜそれは整列していないのでしょうか。

4

1 に答える 1

8

この質問を投稿しようとしていて、最後の実験を 1 つ行いました。ボタンに 3 行目のテキストを追加しました。これがさらに押し下げた。しかし、共通点があることに気付いたのは、中央のボタンの一番上の行のテキストが、その両側にある 2 つのボタンのテキストと完全に整列していることです。

したがって、内側のマージンに問題があり、テキストを上の境界線に押し付けることができなかったわけではありません。配置は、ボタンのグラフィックではなく、TEXT のものでした。ずっと私は謎のパディングがあると思っていましたが、3 行のボタン テキストでは、約 1 dp 程度のパディングがあるだけで十分でした。

解決策は追加することでした

android:layout_gravity="center_vertical"

そのボタンに。一貫性を保つために、残りの部分にも追加しました。

教訓: 物事が一致していないと思うとき、実際には一致しているかもしれませんが、間違ったものを見ているのかもしれません。

于 2013-08-12T13:25:44.000 に答える