我有这个xml布局,它是FrameLayouts的父布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2"
android:padding="10dp"
android:clipToPadding="false"
android:clipChildren="false">
<LinearLayout
android:id="@+id/home_card_row1"
android:layout_height="0dp"
android:layout_width="fill_parent"
android:layout_weight="1"
android:clipChildren="false"
android:orientation="horizontal" />
<LinearLayout
android:id="@+id/home_card_row2"
android:layout_height="0dp"
android:layout_width="fill_parent"
android:layout_weight="1"
android:paddingTop="10dp"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="horizontal" />
</LinearLayout>
这是我单独的单个FrameLayout,它填充在上面显示的父布局中:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_gravity="top"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_weight="0.5"
android:background="@drawable/book_corners"
android:paddingRight="6dp"
android:paddingBottom="6dp"
android:layout_marginLeft="20dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="20dp"
android:clipToPadding="false"
android:clipChildren="false">
<ImageView
android:layout_gravity="top"
android:id="@+id/home_item_bg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/book2"
android:layout_marginLeft="-12px"
android:layout_marginTop="-12px"
android:cropToPadding="false"/>
<RelativeLayout
style="@style/single_book"
android:layout_gravity="top"
>
<TextView
android:id="@+id/home_item_badge"
style="@style/round_badge"
android:text="34"
/>
<TextView
android:id="@+id/home_item_big_badge"
style="@style/big_badge"
android:text="Updated 30 minutes ago"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/home_item_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is the very cool title"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_marginBottom="10dp"
/>
<TextView
android:id="@+id/home_item_subtitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="And this is some very nice description about content"
android:textColor="#FFFFFF"
android:textSize="15sp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/home_item_preloader"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="-12px"
android:layout_marginLeft="-12px"
android:background="#333"
>
<ProgressBar
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_centerInParent="true"/>
</RelativeLayout>
</RelativeLayout>
</FrameLayout>
当我用它的FrameLayout子项向父xml充气时,一切都很好,但当我尝试以编程方式从单独的xml中添加FrameLayouts时,左/右边距消失。 为什么会这样?
答案 0 :(得分:0)
除了使用用于字体大小的sp
(缩放像素)外,您还需要使用dp
(密度像素),用于FrameLayout
中的维度,如下所示:< / p>
使用sp
代替dp
的所有边距和边距相同。
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_gravity="top"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="0.5"
android:background="#fff"
android:paddingRight="6dp"
android:paddingBottom="6dp"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:clipToPadding="false"
android:clipChildren="false">