ビューのマージンとパディングの違いは何ですか?
ビューのマージンとパディングの違いは何ですか?
回答:
パディングの意味を思い出しやすくするために、厚い綿のパディングがたくさんある大きなコートを考えます。私はコートの中にいますが、私とパッド入りのコートは一緒です。私たちはユニットです。
しかし、マージンを覚えておくために、「ちょっと、マージンをください!」と思います。これは、私とあなたの間の空のスペースです。私の快適ゾーンの内側に入らないでください-私のマージン。
より明確にするために、ここにパディングとマージンの画像がありますTextView
:
<?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:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#c5e1b0"
android:textColor="#000000"
android:text="TextView margin only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#f6c0c0"
android:textColor="#000000"
android:text="TextView margin only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c5e1b0"
android:padding="10dp"
android:textColor="#000000"
android:text="TextView padding only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f6c0c0"
android:padding="10dp"
android:textColor="#000000"
android:text="TextView padding only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#c5e1b0"
android:textColor="#000000"
android:padding="10dp"
android:text="TextView padding and margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#f6c0c0"
android:textColor="#000000"
android:padding="10dp"
android:text="TextView padding and margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c5e1b0"
android:textColor="#000000"
android:text="TextView no padding no margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f6c0c0"
android:textColor="#000000"
android:text="TextView no padding no margin"
android:textSize="20sp" />
</LinearLayout>
パディングは、ボーダーと実際のビューのコンテンツとの間のボーダー内のスペースです。パディングはコンテンツを完全に囲んでいることに注意してください。上下左右にパディングがあります(これは独立している場合があります)。
マージンは、ボーダーとこのビューの隣にある他の要素の間の、ボーダーの外側のスペースです。画像では、マージンはオブジェクト全体の外側の灰色の領域です。余白はパディングと同様にコンテンツ全体を囲んでいることに注意してください。上、下、右、および左に余白があります。
画像に1000ワードを超える言葉がある(マージン対パディング-CSSプロパティから抽出):
パディングはビュー内にあり、マージンは外側にあります。すべてのビューでパディングを使用できます。ビューによっては、パディングとマージンの間に視覚的な違いがある場合とない場合があります。
たとえば、ボタンの場合、特徴的なボタンの背景画像にはパディングが含まれますが、マージンは含まれません。つまり、パディングを追加するとボタンの見た目が大きくなり、マージンを追加するとボタンと次のコントロールの間のギャップが広くなります。
以下のためTextView
の、他方では、パディングとマージンの視覚効果は同一です。
マージンを使用できるかどうかは、ビュー自体ではなく、ビューのコンテナによって決まります。ではLinearLayout
余白に、サポートされてAbsoluteLayout
いない- (現在は廃止と考えられます)。
下の画像では、パディングとマージンを理解できます-
上記のすべての正解に加えて、もう1つの違いは、パディングによってビューのクリック可能な領域が増えるのに対し、マージンは増えないことです。これは、小さめのクリック可能な画像があり、クリックハンドラーに寛容にしたい場合に役立ちます。
例えばのために、と私のレイアウトのこの画像を参照してくださいImageView
、私は設定(Androidのアイコン)paddingBotton
であることを100dp
(画像は株式ランチャーミップマップですic_launcher
)。添付されたクリックハンドラーを使用して、画像の外側と下の方をクリックして、クリックを登録することができました。
簡単に言えば、
パディングはボックスのサイズを(何かで)変更します。
マージンは、異なるボックス間のスペースを変更します