代码之家  ›  专栏  ›  技术社区  ›  user4505484

如何删除元素之间的边界?

  •  0
  • user4505484  · 技术社区  · 9 年前

    我有一个相对布局,里面有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中,所有元素都紧邻在一起。没有边界,什么都没有。当我在手机(索尼Xperia T)上启动应用程序时,卡之间有黑色边框。如何删除边框?我想让卡片占据屏幕上的所有空间。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Vucko    9 年前

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

    类似于两个水平线性布局,每个布局的权重为1(因此它们将分别占据半个屏幕),在垂直线性布局中(因此它们会相互重叠)。 然后,在这2个布局中的每一个中,使用另外3个线性布局,每个布局都带有 布局_权重 设置为1,这样它们将各自占据其父级宽度的1/3。对于每一个最里面的线性布局,将宽度和高度设置为0,权重将处理它。

    最后,在6个最里面的LinearLayouts中的每一个中放置一个CardView,并将其宽度和高度设置为 match_parent 。这样,你应该把你的屏幕分成6块,中间没有空格的卡片,它可以在不同的设备上工作(你的屏幕不会工作,因为你有硬编码的值):

    android:layout_height="190dp"
    

    这就是为什么它在Emulator和您的手机上看起来不一样(在另一台手机上可能更不一样)。