Articles of android recyclerview

如何根据设备屏幕尺寸使用RecyclerView?

我有一个后端API端点,它在某些集合中返回JSON 。 每组包含10 lines of Json 。 例如: curl http://www.something.com?getData=0将给出first 10 elements和curl http://www.something.com?getData=1将返回下一组等等。 我使用RecyclerView和StaggeredGridView从给定的endpoints加载数据。 现在我只取第一套,它的工作非常好。 我在找什么? 如何根据Android屏幕尺寸在RecyclerView加载数据。 例如: 假设设备hdpi能够在RecyclerView加载25 RecyclerView 。 所以,这里的endpoints按顺序请求: http://www.something.com?getData=0 // will fetch 0-10 http://www.something.com?getData=10 // will fetch 11-20 http://www.something.com?getData=10&skip=5 // will fetch 21-25 如何动态制作上述流程。 这样它适用于所有屏幕尺寸? 顺便说一句,这是我将数据加载到StaggeredGridView适配器的方式: mRecyclerView = (RecyclerView) mActivity.findViewById(R.id.staggering_grid); mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); mAdapter = new StaggeredGridAdapter(mContext); mAdapter.addItems(response); mRecyclerView.setAdapter(mAdapter); 可能解决方案 如果我知道我需要根据设备填充多少Grid […]

在recycleview上的wrap_content,取项目的高度(水平列表)

我有一个RecycleView,设置为水平。 现在我希望高度与视图中项目的高度相匹配。 我事先并不知道高度。 目前我有这个: 主要片段: 图片 但它总是占用整个屏幕。 所以我之间有很多空白。 有没有办法可以在recycleview项目上使用wrap_content? 这就是它目前的样子: 我目前放置了2个横幅,顶部有大空白,小图像是带有recyclerview的横幅。 下面的图片只是放在图像视图中的图像(它看起来应该是什么样子,但我希望它带有recyclerview,所以如果我有多个,我可以滚动横幅)

向下滚动时,Android Recyclerview滞后

我在里面有一个带有recyclerview(GridlayoutManager)的片段。 recyclerview中的项目并不复杂或有图像,但向下滚动Recyclerview滞后(在Nexus 5上测试)。 我将hasFixedSize和hasStableIds设置为true有人知道为什么会这样吗? 提前致谢。 分段 public class EditTimetableFragment extends Fragment implements TimetableRecyclerViewAdapter.ClickListener { public EditTimetableFragment() {} DAO dao; SharedPreferences sharedPreferences; SharedPreferences.Editor editor; RecyclerView recyclerViewTimetable; Spinner spinnerSubject; TimetableRecyclerViewAdapter timetableRecyclerViewAdapter; TaskSubjectSpinnerAdapter taskSubjectSpinnerAdapter; List subjectList; List timetableList; FloatingActionButton fabAddSubject; boolean saturday, sunday; int dayLength, hourLength; TextView textViewSa, textViewSu; LinearLayout week, linearLayout; View view; public View getView() { […]

viewHolder.getAdapterPosition()始终返回-1

由于某种原因,我无法使用holder.getAdapterPosition()因为它总是返回-1但holder.getLayoutPosition()返回一个位置就好了。 我的onCreateViewHolder: @覆盖 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.my_item, parent, false); ViewHolder vh = new ViewHolder(this, v); return vh; } 我的ViewHolder构造函数: public ViewHolder(DirectoryListAdapter adapter, View linear) { super(linear); this.adapter = adapter; this.linear = (LinearLayout) linear; this.entryName = (TextView) linear.findViewById(R.id.item_name); this.entryImage = (ImageView) linear.findViewById(R.id.item_image); } […]

从数据列表中查找RecyclerView中项目的位置

我想从RecyclerView的数据集中获取RecyclerView项目的位置。 我的数据集中的每个项目都包含唯一的ID 。 我想在RecyclerView中find与数据集中的id对应的项的适配器位置。 我的数据集类如下所示。 class dataset { int id; JSONArray linked; int type; …. } 我根据types将TextView或EditText添加到RecyclerView 。 最终目标:我的RecyclerView可以有多个独立的EditText和TextViews (尽管TextView将有一个字段,其中包含与其链接的EditText的id)。 当我单击TextView ,我将使用EditText (dataset)的id来获取数据。 我想从RecyclerView的项目中获取相应EditText的文本和那些id。 如果我可以从数据集中获取适配器位置,我可以以某种方式使用 recyclerview.getChildAt(position); 但是没有办法从数据集中获取适配器位置。

对于CoordinatorLayout内的RecyclerView,滚动无法正常工作

其实我有2个问题 1。 滚动不能正常工作,有时当我们在特定方向上滚动非常小的距离并保持触摸时,滚动非常快,直到特定方向的末端,即上下颠倒 第2位。 我希望自定义工具栏的标题仅在其折叠时显示,并且在展开时应隐藏标题 这是XML代码

如何animationRecyclerView像垂直Viewpager转换

我在我的项目中使用了Vertical Viewpager 。 但是有一些问题, 当页面有很多onclick()事件时, 滚动太难了 fling事件不会更改页面 我尝试使用手势检测器,但它没有转换就更快地更改了页面( 没有调用transformPage() ) 当我滚动页面时,有时onclick()事件也会被触发 所以我决定在PagerSnapHelper的帮助下use Recyclerview as Viewpager 。 它工作正常。 但问题是, 如何更改项目时如何进行转换或animation(就像我在ViewPager中所做的那样) 例如,Viewpager中的Zoomout转换或堆栈转换。 我尝试了stackLayoutManager,但滚动并尝试此相关链接需要更多时间。它不起作用。 我研究了两个问题如何降低viewpager的滚动速度以及如何在recyclerview中进行animation制作 。 我没有得到它的解决方案。 谁能帮我!!! 是否可能或我需要使用任何其他小部件。 编辑 我尝试了#ADM的建议,它工作正常,但不支持PagerSnapHelper。 我在上面的链接中更改了stacklayout manager,但它不支持scrollToPosition()和PagerSnapHelper。 码: public class StackLayoutManager extends LinearLayoutManager { private static final String TAG = “StackLayoutManager”; //the space unit for the stacked item private int mSpace = […]

在刷卡后,使用RecyclerView复制碎片出现在ViewPager中

使用RecyclerView的片段在ViewPager中存在问题。 在刷卡后重新创建片段时,重复的RecyclerView会重叠显示。 我正在使用ViewPager,Fragment,FragmentStatePagerAdapter 图1:RecyclerView第一次没问题。 图2:在扫描多个片段然后向后滑动到相同片段之后,复制片段在滚动时重叠。 使用FragmentStatePagerAdapter class SlidingFragmentPagerAdapter extends FragmentStatePagerAdapter { SparseArray registeredFragments = new SparseArray(); FragmentManager fm; public SlidingFragmentPagerAdapter(FragmentManager fm) { super(fm); this.fm = fm; } @Override public Fragment getItem(int position) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1 * (FragmentViewPager.MAX_PAGE – position – 1)); return FragmentMain.newInstance(position + “”, cal.getTime()); } @Override public int getCount() […]

使用Espresso测试recyclerView,如何执行单击或断言

最近我需要测试RecyclerView,我在使用它时遇到了很多麻烦。 首先,我通过向我们提供位于espresso-contrib中的 RecyclerViewActions来了解Espresso已经“支持”RecyclerViews。 所以我决定使用它,我的依赖关系看起来像这样: dependencies { androidTestCompile ‘junit:junit:4.12’ androidTestCompile ‘com.squareup.spoon:spoon-client:1.2.1’ androidTestCompile ‘com.jraska:falcon-spoon-compat:0.3.1’ androidTestCompile ‘com.android.support:support-annotations:23.1.1’ androidTestCompile ‘com.android.support.test:runner:0.4.1’ androidTestCompile ‘com.android.support.test:rules:0.4.1’ androidTestCompile ‘com.android.support.test.espresso:espresso-contrib:2.2.1’ androidTestCompile “org.mockito:mockito-core:1.10.19” androidTestCompile “com.google.dexmaker:dexmaker:1.2” androidTestCompile “com.google.dexmaker:dexmaker-mockito:1.2” } 但是,只有在尝试将espresso-core更改为espresso-contrib后才尝试运行我的测试。 我可以看到这个错误: Test running failed: Instrumentation run failed due to ‘java.lang.IncompatibleClassChangeError’ 我试着把它谷歌出来。 我看到很多话题,人们都在回答这样的问题 。 所以我排除了appcompat,supportv4和recyclerview-v7。 像那样: androidTestCompile (‘com.android.support.test.espresso:espresso-contrib:2.2.1’) { exclude group: ‘com.android.support’, module: ‘appcompat’ exclude group: ‘com.android.support’, module: […]

android:RecyclerView里面的ScrollView(或视差)

我有一个片段,其中包含2个带有多个控件的cardview 。 在第二张cardview 下面我有一个recyclerview ,这很完美 。 问题是recyclerview从屏幕底部开始,滚动recylcerview非常小 。 之前使用过listview,这使我保持适合你的内容,从而立即在屏幕上滚动,但recylclerview不能。 当我在recyclerview中滚动时,如何进行控制,就像视差效果一样? 编辑:更清楚,想象一个片段中的2张卡片,这些占据屏幕的80%,其中上面是一个带有100个项目列表的回收者视图,但滚动是如此微小……列表视图让我适应“内容“并立即滚动整个屏幕。 这是我的XML布局: 这是截图: