如何去除元素之间的边框?
How to remove border between elements?
我有一个包含 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 中,所有元素都紧挨着彼此。没有边界,什么都没有。当我在 phone (Sony Xperia T) 上启动应用程序时,卡片之间有黑色边框。如何去除边框?我想让卡片占据屏幕上的所有 space。
在元素较多的相对布局中很容易迷失方向。我建议使用嵌套线性布局和 layout_weight
.
类似于 2 个水平线性布局,每个权重为 1(因此它们将各自占据半个屏幕),位于垂直线性布局内(因此它们将彼此重叠)。
然后在这 2 个中的每一个中,使用另外 3 个线性布局,每个布局都将 layout_weight
设置为 1,因此它们各自占据其父级宽度的 1/3。对于每个最里面的线性布局,将宽度和高度设置为 0,权重将处理它。
最后,在最里面的 6 个 LinearLayout 中的每一个中放置一个 CardView,并将其宽度和高度设置为 match_parent
。这样你应该把你的屏幕分成 6 个均匀的卡片,它们之间没有 space 并且它可以在不同的设备上工作(你的不会因为你有硬编码值):
android:layout_height="190dp"
这就是导致它在模拟器和您的 phone 上看起来不同的原因(在另一个 phone 上可能更不一样)。
我有一个包含 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 中,所有元素都紧挨着彼此。没有边界,什么都没有。当我在 phone (Sony Xperia T) 上启动应用程序时,卡片之间有黑色边框。如何去除边框?我想让卡片占据屏幕上的所有 space。
在元素较多的相对布局中很容易迷失方向。我建议使用嵌套线性布局和 layout_weight
.
类似于 2 个水平线性布局,每个权重为 1(因此它们将各自占据半个屏幕),位于垂直线性布局内(因此它们将彼此重叠)。
然后在这 2 个中的每一个中,使用另外 3 个线性布局,每个布局都将 layout_weight
设置为 1,因此它们各自占据其父级宽度的 1/3。对于每个最里面的线性布局,将宽度和高度设置为 0,权重将处理它。
最后,在最里面的 6 个 LinearLayout 中的每一个中放置一个 CardView,并将其宽度和高度设置为 match_parent
。这样你应该把你的屏幕分成 6 个均匀的卡片,它们之间没有 space 并且它可以在不同的设备上工作(你的不会因为你有硬编码值):
android:layout_height="190dp"
这就是导致它在模拟器和您的 phone 上看起来不同的原因(在另一个 phone 上可能更不一样)。