java - RecyclerView 中的 CardView 垂直滚动

标签 java android android-studio android-layout android-fragments

我正在创建一个 android 应用程序,它需要在 recyclerview 中垂直滚动的 cardview。就像在垂直滚动的多张卡片中一样。但是我不能在一个屏幕上得到一张以上的卡片。 我不知道自己做错了什么。如何让卡片相邻滚动?

MainActivity 设置回收器 View 布局

public class MainActivity extends AppCompatActivity {

    RecyclerView recyclerView;
    CardView cardView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView=findViewById(R.id.recyclerView);
        recyclerView.setHasFixedSize(true);
        CustomAdapter adapter =new CustomAdapter(this);



        LinearLayoutManager layoutManager =new LinearLayoutManager(this,LinearLayoutManager.VERTICAL ,false );
        recyclerView.setLayoutManager(layoutManager );
        recyclerView.setAdapter(adapter);
        recyclerView.setItemAnimator(new DefaultItemAnimator());


    }
}

Card_layout 是一个线性布局,卡片布局包含一个线性布局,包含三个纯文本和一个按钮。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/card"
        android:background="@color/card_bg"
        android:elevation="10dp"
        app:cardCornerRadius="10dp">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">


            <EditText
                android:id="@+id/editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="Name" />

            <EditText
                android:id="@+id/editText2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="Name" />

            <EditText
                android:id="@+id/editText3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="Name" />

            <Button
                android:id="@+id/button"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button" />

        </LinearLayout>
    </androidx.cardview.widget.CardView>
</LinearLayout>

主要 Activity 包含回收 View 。它是相对布局。适配器类在 recyclerview 中保存 cardview 布局

<androidx.constraintlayout.widget.ConstraintLayout 
    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:layout_width="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
         />

</androidx.constraintlayout.widget.ConstraintLayout>

最佳答案

android:layout_height="match_parent" 更改为 android:layout_height="wrap_content" 在 Root View-Group LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"

  // only change this below line
    android:layout_height="wrap_content">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/card"
        android:background="@color/card_bg"
        android:elevation="10dp"
        app:cardCornerRadius="10dp">


      //rest of the code here



    </androidx.cardview.widget.CardView>
</LinearLayout>

关于java - RecyclerView 中的 CardView 垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61657783/

相关文章:

java - 如何修复 android.os.NetworkOnMainThread

android - W/System.err : org. json.JSONException

Android 应用程序未安装 intent.action.VIEW

android - 为 mapsforge 按需下载矢量数据

java - 为什么 Android Studio 中的按钮 "Commit"是灰色的?

java - 将 spring-boot 连接到 azure sql server 时出现问题

java - 即时添加 Quartz 源 Java 文件

java - Play 2.4.6 框架中的表单未绑定(bind)

java - Android - 图像和文本无法加载(RecyclerView - CardView - API)

android - Gradle 同步 : Failed to resolve (library name)