1. ホーム
  2. アンドロイド

Viewコントロールでandroid:drawablePaddingが機能しない原因を探る

2022-02-24 11:33:16

android:drawablePaddingを使用する場合、設定した後に動作しないことがよくあります。

<?xml version="1.0" encoding="UTF-8"? >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button1"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:drawableTop="@drawable/ic_launcher"
        android:gravity="center"
        android:drawablePadding="10dp"
        android:text="oooooo" />

</LinearLayout>

とりあえずandroid:drawablePaddingを10dpに設定して、その効果を見てみましょう。

この画像とテキストの間の距離はまだとても大きく、設定した10dpではないことは間違いないことがわかります。もしかして、このプロパティが機能していないのでしょうか?何度かテストした結果、コントロールのサイズがwrap_contentに設定されており、この android:drawablePaddingが機能します。さて、変更後の効果を見てみましょう。

ここで効果があって、コントロールのサイズをwrap_contentにすると、テキストと画像のデフォルトサイズが0になります。 match_parentや固定高さにすると、画像が思い切り傾いてandroid:drawablePaddingが機能しなくなるので、その場合は ということで、android:drawablePaddingというプロパティを使うときは、この点に注意しましょう