android - 删除相对布局中元素之间的边框

时间:2016-03-10 17:15:29

标签: android layout size border relative

我有一张相对布局,里面有6张卡片。这是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:padding="0dp"    
android:layout_margin="0dp"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
>
<View android:id="@+id/view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_centerHorizontal="true"/>
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/Card_View1"
    android:layout_width="0dp"
    android:layout_height="190dp"
    android:layout_alignLeft="@id/view"
    android:layout_alignParentRight="true"
    android:onClick="openFirst"
    >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:src="@drawable/icontest"
         />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/Card_View2"
    android:layout_gravity="center"
    android:layout_toRightOf="@+id/Card_View1"
    android:layout_width="0dp"
    android:layout_height="190dp"
    android:layout_alignRight="@id/view"
    android:layout_alignParentLeft="true"
    android:onClick="openFirst"
    >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:src="@drawable/icontest"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/Card_View3"
    android:layout_gravity="center"
    android:layout_below="@+id/Card_View1"
    android:layout_width="0dp"
    android:layout_height="190dp"
    android:layout_alignRight="@id/view"
    android:layout_alignParentLeft="true"
    >
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/Card_View4"
    android:layout_gravity="center"
    android:layout_toRightOf="@+id/Card_View3"
    android:layout_below="@+id/Card_View2"
    android:layout_width="0dp"
    android:layout_height="190dp"
    android:layout_alignLeft="@id/view"
    android:layout_alignParentRight="true"
    >
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/Card_View5"
    android:layout_gravity="center"
    android:layout_below="@+id/Card_View3"
    android:layout_width="0dp"
    android:layout_height="190dp"
    android:layout_alignRight="@id/view"
    android:layout_alignParentLeft="true"
    >
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/Card_View6"
    android:layout_gravity="center"
    android:layout_below="@+id/Card_View4"
    android:layout_toRightOf="@+id/Card_View5"
    android:layout_width="0dp"
    android:layout_height="190dp"
    android:layout_alignLeft="@id/view"
    android:layout_alignParentRight="true"
    >
</android.support.v7.widget.CardView>
</RelativeLayout>

在Android Studio中,所有元素都紧挨着。没有边界,没有。当我在手机上启动应用程序(Sony Xperia T)时,卡之间会出现黑色边框。如何删除边框?我希望这些卡占据屏幕上的所有空间。

1 个答案:

答案 0 :(得分:0)

在具有许多元素的相对布局中很容易迷失方向。我建议使用嵌套的线性布局和layout_weight

类似2个水平线性布局,每个重量为1(因此它们每个占据半个屏幕),在垂直线性布局内(因此它们彼此重叠)。 然后在这两个中的每一个中,使用另外3个线性布局,每个布局都将layout_weight设置为1,因此它们每个占据其父级宽度的1/3。对于每个最里面的线性布局,将宽度和高度设置为0,重量将处理它。

最后,在6个最里面的LinearLayouts中,每个都放置一个CardView,并将其宽度和高度设置为match_parent。这样你就可以将你的屏幕划分为6个偶数块用于卡片,它们之间没有空间,它可以在不同的设备上工作(因为你有硬编码的值,你的设备赢了):

android:layout_height="190dp"

这导致它在模拟器和手机上看起来有所不同(在另一部手机上可能更加不同)。