Articles of android recyclerview

RecyclerView ambiguos setVisibility函数,单击一个视图会影响多个视图

这是我正在尝试运行的项目 。 这里是我从RecyclerView.Adapter类的onBindViewHolder的代码 @Override public void onBindViewHolder(ViewHolder holder, final int position) { TextView title = (TextView) holder.view.findViewById(R.id.title); final TextView desc = (TextView) holder.view.findViewById(R.id.desc); final ImageView imageView = (ImageView) holder.view.findViewById(R.id.imageView); title.setText(pojos.get(position).getTitle()); desc.setText(pojos.get(position).getDesc()); imageView.setImageResource(pojos.get(position).getImage()); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { desc.setText("clicked"); desc.setBackgroundColor(Color.BLUE); imageView.setImageResource(R.drawable.heart_red); } }); } 列表加载正常,当imageView的onclicklistener被调用时,问题发生。 desc.setText("clicked"); 上面的这行代码在点击它的列表项中进行更改。 但 desc.setBackgroundColor(Color.BLUE); 当这行被执行时,这个改变反映在列表上的多个项目中。 出了什么问题? 在下面的图片中,我点击了项目0,文字变成“点击”,颜色被设置。 […]

使用SearchviewsearchRecyclerView

我想通过RecyclerView进行search,我有List<BaseOfCards> (BaseOfCards是我的getter&setter类)我的RecyclerViewAdapter : public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> { private LayoutInflater inflater; private List<BaseOfCards> items; //private int itemLayout; //String cardvalue; private Activity mActivity; public RecyclerViewAdapter(Activity mActivity, Context context, List<BaseOfCards> items) { this.mActivity = mActivity; inflater = LayoutInflater.from(context); this.items = items; //this.itemLayout = itemLayout; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = […]

在RecyclerView中改变单个drawable的颜色将改变所有的drawable

我只是试图改变我的行内我的drawable的颜色取决于一个值,而不是一个可绘制的适配器改变了所有的人。 这是我的适配器: public class ReportAdapter extends RecyclerView.Adapter<ReportAdapter.ReportViewHolder> { DataBaseHelper dataBase; private LayoutInflater inflater; List<ChoosedSubject> data = Collections.emptyList(); Context context; OnItemClickListener itemClickListener; public ReportAdapter(Context context, List<ChoosedSubject> data, OnItemClickListener itemClickListener) { inflater = LayoutInflater.from(context); this.data = data; this.context = context; this.itemClickListener = itemClickListener; } @Override public ReportViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.report_cell, parent, […]

RecyclerView – NotifyItemInsert上没有animation

出于某种原因,向RecyclerView添加新项目(应该插入到列表顶部)时,除非向下滚动列表并返回到顶部,并且没有任何animation,否则它不会显示。 (只是出现在列表顶部,就好像它在整个时间一样)。 删除一个项目适当的animation工作正常。 RecyclerViewAdapter: @Override public void onNewDatabaseEntryAdded() { //item added to top of the list notifyItemInserted(0); } public FileViewerAdapter(Context context) { super(); mContext = context; mDatabase = new DBHelper(mContext); mDatabase.setOnDatabaseChangedListener(this); } SQLite数据库: private static OnDatabaseChangedListener mOnDatabaseChangedListener; public static void setOnDatabaseChangedListener(OnDatabaseChangedListener listener) { mOnDatabaseChangedListener = listener; } public long addRecording(String recordingName, String filePath, long length) […]

从适配器更改滚动值的Recyclerview

我正在尝试使用RecyclerView和回收站适配器填充列表的应用程序。 但是,当我快速滚动列表中的列表项时,列表项中的值有时会混洗。 有没有一个已知的解决办法?

使RecyclerView的高度在约束布局中的“wrap_content”

我试图设置wrap_content的回收站视图的高度,并使其尊重,但它会超过布局上的其他小部件。 我现在能做什么? <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white"> <TextView android:id="@+id/tvPastRounds" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginTop="0dp" android:text="Past Rounds" android:textColor="@color/text_color_black" android:textSize="16sp" app:layout_constraintLeft_toLeftOf="parent"/> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintHeight_default="wrap" android:layout_marginBottom="24dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:layout_marginTop="16dp" android:clipChildren="true" android:maxHeight="150dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="@+id/tvPastRounds" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvPastRounds" app:layout_constraintVertical_bias="0.0"/> </android.support.constraint.ConstraintLayout>

RecyclerView项目宽度layout_width =“match_parent”与父项不匹配

我正在使用RecyclerView,我正在尝试使RecyclerView match_parent的宽度项目,因为我正在使用 LinearLayoutManager.HORIZONTAL <android.support.v7.widget.RecyclerView android:id="@+id/listOffersHits" android:layout_width="match_parent" android:layout_height="match_parent" /> custom_layout.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:layout_margin="2dp" card_view:cardCornerRadius="2dp"> <ImageView android:id="@+id/offerImage" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/item_selector" android:scaleType="fitXY" android:src="@drawable/offer" /> </android.support.v7.widget.CardView> 布局pipe理 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(),LinearLayoutManager.HORIZONTAL, false); listOffersHits.setLayoutManager(linearLayoutManager); ViewHolder View view= LayoutInflater.from(parent.getContext()) .inflate(R.layout.custom_layout, parent, false); ViewOffersHolder viewHolder=new ViewOffersHolder(view); return viewHolder;

一次扫一个项目Recyclerview

我试图添加滚动侦听器回收视图,并作出了一些逻辑,但我无法一次刷一个项目。 我在互联网上做了一些search,但我有一些第三方库,有自定义回收视图。 我们可以在回收者视图中一次实施一个项目吗? 如果是的请告诉如何? 一个项目像这个图像一次滑动。

如何在RecyclerView.Adapter中从ViewHolder调用MainActivity方法?

在GitHub的一个简单的应用程序项目中,我只有两个自定义的Java文件: MainActivity.java包含蓝牙和UI相关的源代码 DeviceListAdapter.java包含一个Adapter和ViewHolder用于在RecyclerView显示蓝牙设备 MainActivity.java包含一个方法,当用户在RecyclerView的蓝牙设备上点击时: public void confirmConnection(String address) { final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Do you want to pair to " + device + "?"); builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { device.createBond(); } }); builder.setNegativeButton(R.string.button_cancel, null); builder.show(); } 在ViewHolder类中(在DeviceListAdapter.java中 ),定义了点击侦听器: public class DeviceListAdapter extends RecyclerView.Adapter<DeviceListAdapter.ViewHolder> […]

检查RecyclerView是否可滚动

如何检查RecyclerView是否可滚动,即在可见区域下面/上面有项目 我有一个使用notifyItemRangeInserted()和notifyItemRangeRemoved()工作的回收器视图下拉菜单。 每当发生这种情况时,我想检查RecyclerView是否可以滚动,因为我必须相应地调整另一个视图,就像报摊上的横幅一样