【问题标题】:Recycler view and Card View not working properly回收站视图和卡片视图无法正常工作
【发布时间】:2017-01-19 11:45:58
【问题描述】:

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

我是 Coordinator 视图的新手,如果我犯了一些菜鸟错误,请原谅我

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>

【问题讨论】:

  • 你在gradle文件中实现cardview和recyclerview依赖了吗?或者您可以查看此链接:github.com/dharmakshetri/CardViewExample
  • 是的,我指定了依赖项,并且我已经看到了几个示例,但问题不在于卡片视图,我说的是按钮和文本视图回收站视图上方的功能不起作用

标签: android android-layout android-cardview android-recyclerview


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多