1. padding 和 lauyout_margin
只是因为做笔试题或面试的时候遇到这个问题,话说这种问题真没什么意思。
从字面上看,margin 多了个layout,说明是作用于布局的,而padding则是作用于内容的。
layout_margin: 该View 同外层的View 之间的空白区
padding : 该View 内部的View 同该View 边界的空白区
看效果吧:
1) padding
布局:
<?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:paddingLeft="8dp"
android:paddingRight="8dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/user_icon"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/user_name"
style="@style/BigBlackText"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/list_padding"
android:paddingRight="@dimen/list_padding" />
</LinearLayout>
看:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:orientation="horizontal" >
看 HelloWorld 和ActionBar 之间交接的地方,这种情况下是没有缝隙的。
而 LinearLayout 内部的 ImageView 和ActionBar 的那条黑线确实有 8dp 的距离
2). layout_margin
布局代码:
<?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:paddingLeft="8dp"
android:paddingRight="8dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:orientation="horizontal" >
...... 下面相同
效果:
与Actionbar 的距离有8 dp
Imageview 和Linearlayout 的距离为 0