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

Androidにおけるpaddingとlayout_marginの違いと使い分けについて

2022-02-24 15:50:46

I. 定義   

        android:layout_margin は、ビューの上下の左右の境界線を設定するための余分なスペースです。

        android:padding は、ビューの境界線に対するコンテンツの距離を設定します。

        paddingは、"padding"の意味で、肩パッドのようなパッド、コントロールのパディング、そのコントロールの内側のパディングのことで、paddingは親コントロールとして定義されているコントロールAの内側のコンテンツとコントロールAとの間隔を示すもので、layout_marginはコントロールAとその親コントロールとして定義されているコントロールの間隔を示すものです。

        この概念は単純で、paddingは親ビューの視点から問題を記述し、その中のコンテンツがその親ビューの境界からでなければならない距離を指定します。marginはそれ自身の視点から問題を記述し、それ自身と他の(上、下、左、右)ビューとの距離を指定します。同じレベルのビューが一つしかない場合は、基本的にpaddingと同じ働きをします。

として

When the button is set with each of these two attributes, the result obtained is different.
android:paddingLeft="30px"
The content set on the button (e.g. the image) is 30 pixels from the left border of the button
android:layout_marginLeft="30px"
The entire button is 30 pixels from the content set on the left


II. 使用例

1. どちらもなし

<?xml version="1.0" encoding="utf-8"? >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff" >
 
    <TextView
        android:layout_width="100dip"
        android:layout_height="100dip"
         android:background="#000000"
        android:text="Hello" />
 
</RelativeLayout>


<イグ

2. パディングのみを追加する

<?xml version="1.0" encoding="utf-8"? >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:padding ="100dip"
    android:background="#ffffff" >
 
    <TextView
        android:layout_width="100dip"
        android:layout_height="100dip"
         android:background="#000000"
        android:text="Hello" />
 
</RelativeLayout>


効果

3. マージンのみを追加

<?xml version="1.0" encoding="utf-8"? >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff" >
 
    <TextView
        android:layout_width="100dip"
        android:layout_height="100dip"
         android:background="#000000"
         android:layout_margin="30dip"
        android:text="Hello" />
 
</RelativeLayout>


Effect.


<イグ

III. 説明文に注意

        LinearLayout、RelativeLayout、TableLayoutでは、この2つのプロパティはすべて有効である。

        FrameLayoutでは、要素が左上から描画されるため、android:layout_marginは無効です。

        AbsoluteLayoutでは、android:layout_marginプロパティは存在しません。

        ここで思い出してほしいのは、レイアウトパラメータの項目を含むxmlパラメータは、定義されたコントロールの親に対する関連付けであり、そうでないものは一般にそれ自身の定義であり、上記はこれと矛盾しない。また、gravityとlayout_gravityも同様で、layoutがあるものは親に対する一般的な位置、ないものは自身の内部コンテンツに対する一般的な位置となります。

から取得した。 Androidにおけるpaddingとlayout_marginの違いと使い分けについて