问题描述
我需要点击此添加按钮添加卡片视图,并且卡片视图必须位于前一个卡片视图的下方,并且添加按钮应该位于新卡片视图的下方
解决方法
您可以这样做:
activity_main.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:id="@+id/baseCard"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="8dp"
app:cardBackgroundColor="@color/colorAccent"/>
<Button
android:id="@+id/butAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="Add" />
</LinearLayout>
</ScrollView>
在布局文件中,您具有ScrollView和ScrollView LinearLayout内部。向LinearLayout添加一个CardView和Button。现在,您必须添加onClick侦听器。因此,在onCreate中,您可以执行以下操作:
butAdd.setOnClickListener {
val newCardView = CardView(this) // creating CardView
newCardView.layoutParams = baseCard.layoutParams //setting params like 1st CardView
root.addView(newCardView,root.childCount - 1) // adding cardView to LinearLayout at the second to last position
}
结果(添加2个CardViews之后,蓝色的是xml中的第一个定义):