Articles of android recyclerview

片段之间animation的共享元素

我正在尝试将RecyclerView中所选项目的2个简单视图设置为新片段。 我已经查看了很多将共享元素从一个Activityanimation到另一个Activity的示例,但很少有animation将共享元素从一个Fragmentanimation到同一个Activity中的另一个Fragment的例子。 它几乎可以工作。 这是我的结构。 活动 – 使用RecyclerView的全屏Fragment1 – 带有详细信息的全屏Fragment2 当用户在Fragment1中的RecyclerView中选择一个项目时,我将Fragment1替换为具有View的Fragment2,其中包含不同位置和大小的共享元素。 要让它工作有一些技巧,你必须确保你的transitionName对于列表中的每个项都是唯一的,当然,transitionName必须与Fragment2中元素的transitionName匹配才能播放animation。 我有这个部分工作,当我选择一个项目时,2个共享视图会animation,而不是在两个活动之间进行animation时的预期。 如果我选择屏幕底部附近的项目,它会绘制View for Fragment2并为2个共享视图设置animation,就好像它们位于屏幕顶部的项目中一样。 很难解释。 这是一些照片 片段1 Fragment2 在这两个片段中我都设置了以下内容 setSharedElementEnterTransition(new ChangeBounds()); setSharedElementReturnTransition(new ChangeBounds()); setAllowEnterTransitionOverlap(true); setAllowReturnTransitionOverlap(true); 同样在他们的onCreate()中的父Activity中我设置了 getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 我知道为什么我的共享元素animation从我的屏幕顶部开始,即使它们是从屏幕底部的选定项目开始的?

RecyclerView针对不同项目的不同itemDecoration

我在我的应用程序中使用RecyclerView并且为了我的设计需要,我需要在列表中的项目之间有不同的边距(例如:前两个项目之间的空间为16dp,第二个项目之间的空间为16dp第三项32dp等)。 我读到您可以将项目装饰添加到RecyclerView并在项目之间创建该空间。 但是这件事在所有项目之间增加了相同的余量,我希望不同的项目有不同的行为。 我的问题是,可以使用项目装饰来完成吗? 这种方法如何比改变项目(视图)的边距更好,例如, RecyclerView.Adapter的onBindViewHolder方法。 先谢谢你!

强制RecyclerView重绘Android

有没有办法重绘RecyclerView所有项目? 我有一些主题(在style.xml中),在更改主题后,我需要重绘RecyclerView 。 所以我想要一个强制为适配器的每个项目重新调用onCreateViewHolder的方法。 我尝试过了: 调用adapter.notifyDataSetChanged但不调用onCreateViewHolder 调用recyclerView.setVisibility(View.GONE) ,然后调用recyclerView.setVisibility(View.GONE) recyclerView.setVisibility(View.VISIBLE) 调用recyclerView.invalidate() 调用recyclerView.setAdapter(null)然后再调用recyclerView.setAdapter(null) recyclerView.setAdapter(adapter) 。 这适用于90%的项目。 只有90%的商品会获得新款式,但有些商品会采用旧款式 我提到RecyclerView附加到Activity,而不是Fragment。

Android:滚动后RecyclerView内容搞砸了

我正在使用RecyclerView显示标记列表,并且值的每个标记都显示为CardView。 但是,在向下滚动RecyclerView并向后滚动之后,卡片的某些内容会丢失,如下面的两个屏幕截图所示。 滚动后,红色矩形中的内容将丢失。 在滚动之前; 在滚动之后; 我想知道它是否是RecyclerView的一个错误,并在Googling之后找不到解决方案。 除标题外,所有观点都是看不见的,它们的可见性取决于标记的价值。 有谁知道为什么会这样?

使用Android的RecyclerView时,在刷卡行下添加带有文本/图标的彩色背景

编辑:真正的问题是我的LinearLayout被包装在另一个布局中,这导致了不正确的行为。 Sanvywell接受的答案有一个更好,更完整的例子,说明如何在刷卡视图下绘制颜色,而不是我在问题中提供的代码片段。 现在,在ItemTouchHelper类的帮助下, RecyclerView小部件本身支持行扫描 ,我试图在应用程序中使用它,行的行为与Google的收件箱应用程序类似。 也就是说,向左侧滑动执行一个动作,向右滑动则执行另一个动作。 使用ItemTouchHelper.SimpleCallback的onSwiped方法很容易实现动作本身。 但是,我无法find一种简单的方法来设置应该出现在当前正在刷卡的视图下的颜色和图标(例如在谷歌的收件箱应用程序中)。 要做到这一点,我试图覆盖ItemTouchHelper.SimpleCallback的onChildDraw方法,如下所示: @Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { RecyclerViewAdapter.ViewHolder vh = (RecyclerViewAdapter.ViewHolder) viewHolder; LinearLayout ll = vh.linearLayout; Paint p = new Paint(); if(dX > 0) { p.setARGB(255, 255, 0, 0); } else { p.setARGB(255, 0, 255, […]

使用Cards在RecyclerView上添加搜索filter?

我在RecyclerView分别find了ListView和SearchView上的filter解决方案,但我希望将它们组合起来。 它甚至可能吗?

NestedScrollView在Recyclerviewresize时滚动到顶部

我有一个NestedScrollView包含一个LinearLayout和一个RecyclerView(都在RelativeLayout内)。 将数据加载到RecyclerView后,我需要以编程方式更改它的高度,如下所示: RelativeLayout.LayoutParams lay_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 50 + ((int) (baskets.length * getResources().getDimension(R.dimen.list_height_small)))); lay_params.addRule(RelativeLayout.BELOW, lay_total.getId()); recyclerView.setLayoutParams(lay_params); recyclerView.setAdapter(new ListBasketAmountAdapter(baskets)); 问题是当数据加载完NestedScrollView时,滚动会自动滚动到RecyclerView的顶部,将LinearLayout隐藏在它上面。 有任何想法吗? 谢谢。

选择一个RadioButton值并向后滚动以删除RecyclerView中的选定值

在我的应用程序中,我在RecyclerView的帮助下显示了20个选择题。 如果我更改第一个RadioGroup的值并向下滚动,再次向上滚动移除RecycelarView的选定值,并且我还想进一步使用所选的RadioButton值,我也检查了link1但我不明白他在做什么。 以下是我的示例代码段,如果您需要任何说明,请告诉我。 package com.testing.survey; import java.util.List; import android.annotation.SuppressLint; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; @SuppressWarnings(“rawtypes”) public class DataAdapter extends RecyclerView.Adapter { private List stList; public DataAdapter(List students) { this.stList = students; } // Create new views @Override public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int […]

RecyclerView无尽的无限滚动问题

我正在尝试使用RecyclerView实现Endless Infinite Scrolling,但我只获得了前10条记录,没有获得接下来的10条记录,甚至在尝试在底部滚动时没有取得任何进展。 虽然我想要在滚动上获得接下来的10条记录等等……但只获得前10条记录 这里我上传了我的JSON 副本 – 但是我无法从同一个url获取数据,这就是我使用客户端url和本地主机的原因。 我正在学习本教程 这是我的完整代码,我可以知道我在哪里做错了吗? JSON: { “names”: [ { “name”: “Name 1” }, { “name”: “Name 2” }, …. { “name”: “Name 60” } ] } 日志: D/name -(13759): Name 1 D/name -(13759): Name 2 ………………….. D/name -(13759): Name 60 这是我更新的代码,我用它来解析JSON数据 MainActivity.java:更新 public class MainActivity extends AppCompatActivity { private […]

隐藏RecyclerView滚动条

如何在Recyclerview中删除滚动条? 我试过用mRecyclerView.setScrollBarSize(0); 但它不起作用。 (实际上,无论我设定的价值如何,它都没有做任何事情)。