android - CardView 内的布局重叠
问题描述
我正在尝试为我的应用程序设计卡片布局。目前我已经创建了如下布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E4E8F8"
android:orientation="vertical"
android:padding="10dp"
android:visibility="visible"
tools:context=".MainActivity"
tools:visibility="visible">
<androidx.cardview.widget.CardView
android:id="@+id/current1"
android:layout_width="match_parent"
android:layout_height="200dp"
app:cardBackgroundColor="#ffffe0">
<LinearLayout
android:id="@+id/card_head2"
android:layout_width="374dp"
android:layout_height="49dp"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:weightSum="3">
<ImageView
android:id="@+id/imageView1"
android:layout_width="70dp"
android:layout_height="46dp"
android:adjustViewBounds="true"
android:baselineAligned="false"
android:contentDescription="@string/todo"
app:srcCompat="@drawable/ic_map" />
<TextView
android:id="@+id/textView1"
android:layout_width="51dp"
android:layout_height="46dp"
android:gravity="center"
android:text="@string/map"
android:textColor="#0F0F0F"
android:textSize="15sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="70dp"
android:layout_height="46dp"
android:adjustViewBounds="true"
android:baselineAligned="false"
android:contentDescription="@string/todo"
app:srcCompat="@drawable/ic_calendar" />
<TextView
android:id="@+id/textView2"
android:layout_width="66dp"
android:layout_height="46dp"
android:gravity="center"
android:text="@string/date"
android:textColor="#0F0F0F"
android:textSize="15sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="57dp"
android:layout_height="46dp"
android:adjustViewBounds="true"
android:baselineAligned="false"
android:contentDescription="@string/todo"
app:srcCompat="@drawable/ic_watch" />
<TextView
android:id="@+id/textView3"
android:layout_width="60dp"
android:layout_height="46dp"
android:gravity="center"
android:text="@string/time"
android:textColor="#0F0F0F"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
当我尝试在创建的水平线性布局下方添加另一个水平线性布局时,新创建的水平布局与卡内现有的水平布局重叠。
我想要做的是这个(我通过按住鼠标按钮将布局保持在现有布局下方来截取这张图片):
但是当我释放鼠标按钮时,布局会自动调整并与现有布局重叠,如下所示:
请帮我创建布局。
解决方案
您需要一个LinearLayout
以垂直方向作为根的CardView
,以便能够以LinearLayouts
垂直方式堆叠。
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/current1"
android:layout_width="match_parent"
android:layout_margin="10dp"
android:layout_height="200dp"
app:cardBackgroundColor="#ffffe0">
<!--You need a root layout of your CardView-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/card_head2"
android:layout_width="374dp"
android:layout_height="49dp"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:weightSum="3">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
推荐阅读
- reactjs - 在 React 中渲染来自 Firebase Firestore 的数据
- c++ - 如何让这个打印到outfile?(c++)
- android - java.lang.ClassCastException:com.example.readdoang.ui.login_regist_activity.LoginRegistActivity 无法转换为 com
- javascript - 如何使 React 组件可以访问并且需要异步数据才能使用的变量?
- php - 如何修复此错误 Undefined offset: 1 in line 178
- c++ - 预提交时cpp中的memleak
- ruby-on-rails - 如何为 API 版本化模型验证?
- amazon-ec2 - 设置 Github 操作以在 EC2 上构建和部署 java 代码
- java - 为什么我不能从本地存储库导入 maven jar?
- tensorflow - Rasa 训练数据集