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
本文详细解释了Android布局中padding和layout_margin的区别。padding定义视图内部与其内容之间的间距,而layout_margin定义视图与外部视图之间的间距。通过具体的布局代码示例对比两种属性的效果。

3万+

被折叠的 条评论
为什么被折叠?



