当前位置: 首页 > 知识库问答 >
问题:

回收器视图和卡视图工作不正常

单于高逸
2023-03-14

只是检查主活动. xml我正在做的是在按钮下方显示回收器视图并编辑文本...编辑文本的值被制成卡片,但问题是按钮不工作我不知道为什么请帮助

我是新的协调员的意见,所以请原谅我,如果我做一些新手的错误

AdapterEx.java

import android.support.design.widget.Snackbar;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.List;

public class AdapterEx extends RecyclerView.Adapter<AdapterEx.ViewHolder>{

    private List<String> nos;


    public AdapterEx(List<String> nos){
        this.nos = nos;
    }

    class ViewHolder extends RecyclerView.ViewHolder{

        public TextView number;

        public ViewHolder(View itemView) {
            super(itemView);
            number  =
                    (TextView)itemView.findViewById(R.id.nos);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override public void onClick(View v) {
                    int position = getAdapterPosition();

                    Snackbar.make(v, "Click detected on item " + position,
                            Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();

                }
            });
        }
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.card, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(v);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
        viewHolder.number.setText(nos.get(i));
    }

    @Override
    public int getItemCount() {
        return nos.size();
    }
}

初始化回收器视图

recycler = (RecyclerView) findViewById(R.id.rv);
        LayoutManager manager = new LinearLayoutManager(this);
        recycler.setLayoutManager(manager);
        nos = new ArrayList<>();
        nos.add("sadasd");
        nos.add("sdada");
        adapter = new AdapterEx(nos);
        recycler.setAdapter(adapter);
        recycler.setHasFixedSize(true);
        recycler.setItemAnimator(new DefaultItemAnimator());

主活动. xml

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<RelativeLayout 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:layout_height="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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.dev99.mathbuddy.prime"
    android:id="@+id/prime"
    android:background="@drawable/prime">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:inputType="number|numberDecimal|numberSigned"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FACTORISE IT!"
        android:id="@+id/button5"
        android:onClick="checker"
        android:nestedScrollingEnabled="false"
        android:layout_below="@+id/editText"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/editText2"
        android:layout_below="@+id/button5"
        android:textAlignment="center"
        android:textSize="30dp"
        android:textColor="#000000"
        android:layout_alignParentStart="false"
        android:layout_alignParentLeft="false" />

</RelativeLayout>

    <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rv">

    </android.support.v7.widget.RecyclerView>
</android.support.design.widget.CoordinatorLayout>

卡片视图. xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/card_view"
    android:layout_gravity="center_horizontal"
    android:layout_width="match_parent"
    android:layout_margin="10dp"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="4dp"
    card_view:cardBackgroundColor="@color/bluemat"
    card_view:cardElevation="10dp"
    card_view:contentPadding="4dp"
    android:clickable="true">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/nos"
        android:textSize="40dp"
        android:textStyle="bold"
        android:textAlignment="center"
        android:layout_gravity="center"
        android:textColor="@color/red"/>

</android.support.v7.widget.CardView>

共有1个答案

谭志用
2023-03-14

问题是 RecyclerViewwrap_content。由于某种原因,RecyclerView不能很好地显示最后一个项目或最后几个项目。我遇到的最常见的问题是最后一个项目被切断了。

 类似资料:
  • 这是我的活动: 卡片xml 活动xml 这是我的自定义适配器 我已经看了很多关于如何让它工作的指南,但它仍然不起作用。有人知道发生了什么事吗?我的版本是25.0。1,并导入所有模块。但它并没有在布局中添加一张卡片。

  • 我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我

  • 单击时的卡片视图正在工作。但回收器视图的区域不可单击。如何使其可点击,以便捕获卡片视图的事件。

  • 我正在尝试在我的 上实现 ,但我没有得到任何结果。 我遵循了这个教程和这个技巧,但是没有人为我工作。 我已经实现了: 但它不让我编译,因为它们是不同的< code > viewmoder ,因为我创建了两个< code > viewmoder 类,但它们< code >扩展了Recycler。ViewHolder所以我不明白... 我正在尝试这样做,因为我有一个,我希望当列表为空时,它会显示一个,

  • 我一直在看GridLayoutManager的留档和它的RecyclerView类。但是我无法了解SpanSizeLookUp类的getSpanGroupIndex和getSpanIndex方法。我还尝试了覆盖和返回任意数字(小于跨度计数)。但是我无法知道它是用来做什么的。 我无法理解文档说明。我想澄清一下。

  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个: