我有一张相对布局,里面有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)时,卡之间会出现黑色边框。如何删除边框?我希望这些卡占据屏幕上的所有空间。
答案 0 :(得分:0)
在具有许多元素的相对布局中很容易迷失方向。我建议使用嵌套的线性布局和layout_weight
。
类似2个水平线性布局,每个重量为1(因此它们每个占据半个屏幕),在垂直线性布局内(因此它们彼此重叠)。
然后在这两个中的每一个中,使用另外3个线性布局,每个布局都将layout_weight
设置为1,因此它们每个占据其父级宽度的1/3。对于每个最里面的线性布局,将宽度和高度设置为0,重量将处理它。
最后,在6个最里面的LinearLayouts中,每个都放置一个CardView,并将其宽度和高度设置为match_parent
。这样你就可以将你的屏幕划分为6个偶数块用于卡片,它们之间没有空间,它可以在不同的设备上工作(因为你有硬编码的值,你的设备赢了):
android:layout_height="190dp"
这导致它在模拟器和手机上看起来有所不同(在另一部手机上可能更加不同)。