Articles of android recyclerview

视图传呼机隐藏在标签栏后面的片段

我的android项目中有Tab栏和ViewPager的问题。 应用程序的作用是有一个活动,它包含一个标签布局,然后有一个代表每个标签的2个片段。 当活动打开时,它会发布到API以获取一些数据,并将数据放入数据适配器中,以便在每个片段中进行Recycler View和Card布局。 回收者视图将包含3个项目,但只显示2个项目,因为第一个项目隐藏在工具栏和/或标签栏下方,如下面的屏幕截图所示。 下面是我的活动的布局文件 下面是片段的布局 下面是卡片布局的布局 下面是上面提到的屏幕截图,显示了问题。 我已经像素化了一些文字,但它应该是我的意思,应该有3个项目,但第一项隐藏在标签栏下面。 感谢您的任何帮助,您可以提供

在使用recyclerView填充的cardView中添加clickListner for按钮

我有一个cardView card_contents.xml 它使用回收者视图: public class MainActivity extends ActionBarActivity { RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); List list=new ArrayList(); list.add(“Hello”); list.add(“Hello World”); list.add(“Hello World Beings”); recyclerView=(RecyclerView)findViewById(R.id.recycler_view); recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.setHasFixedSize(true); RecyclerView.LayoutManager layoutManager=new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); RecyclerView.Adapter adapter=new MyAdapter(list); recyclerView.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to […]

RecyclerView – 跳过第一个布局传递的屏幕外项目

我的一个适配器出了问题。 我有一系列图像,我在网格中显示如下: 当我有一个单一屏幕的项目并且它们都显示正常时,这很有效。 当有更多项目向下滚动时,会出现问题。 最初,当我向下滚动项目显示为空白时, GridLayout容器就在那里,显示图像的代码会运行,但它们不会出现在屏幕上,如下所示: 如果我向上滚动,然后再次向下滚动,图像会出现在它们应该的位置: 看起来我需要刷新布局或告诉渲染器某些内容已发生变化,但我尝试的任何东西似乎都没有做任何事情。 我试过调用requestLayout并invalidate但它似乎没有解决问题。 我还注册了一个GlobalOnLayoutListener,但这并没有更好。 这是相关的代码: 这是我的onBindViewHolder方法 final GridLayout grid = ((KKAlbumViewHolder) holder).mGridLayout; grid.removeAllViews(); int width = grid.getWidth(); if(width > 0) { albumHolder.setPreviewImages(posts); }else { albumHolder.itemView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { […]

Recyclerview一次刷一个项目

我尝试在回收器视图上添加Scroll监听器并制作了一些逻辑,但我无法一次刷一个项目。 我在互联网上做了一些搜索,但我得到了一些第三方库,它有定制的回收站视图。 我们可以在回收站视图中一次实施一个项目滑动吗? 如果是,请告诉我怎么做? 一次扫描一次,就像这张图片一样 。

StaggeredGridLayoutManager重新排序项目

我的项目有不同的布局,有时我通过拖动布局中的项目在RecyclerView上创建一个间隙或间隙。 当我滚动回到RecyclerView的顶部时,一些项目被重新排序并且它们填补了空白。 此处捕获行为: 填补空白是可以的。 当项目在拖动期间改变位置时也可以。 问题在于滚动到顶部。 滚动结束时发生重新排序 – 我没有触摸屏幕。 这就是我如何创建回收和布局管理器 recyclerView = (RecyclerView)layout.findViewById(R.id.recycler_view); stagaggeredGridLayoutManager = new StaggeredGridLayoutManager( getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE ? 3 : 2, StaggeredGridLayoutManager.VERTICAL); recyclerView.setLayoutManager(stagaggeredGridLayoutManager); stagaggeredList = getListItemData(); StatisticsGridViewAdapter rcAdapter = new StatisticsGridViewAdapter(this.getActivity(), stagaggeredList, recyclerView); ItemTouchHelper.Callback callback = new StatisticsTouchHelperCallback(rcAdapter); touchHelper = new ItemTouchHelper(callback); touchHelper.attachToRecyclerView(recyclerView); recyclerView.setAdapter(rcAdapter); ItemTouchHelper类 public class StatisticsTouchHelperCallback extends ItemTouchHelper.Callback { private […]

如何在特定条件下隐藏Recycler View中的项目?

我正在使用Firebase Recycler Adapter(Firebase UI库)来填充Recycler View。 我想在条件上隐藏一个项目(行)。 我有一个包含回收者视图的LinearLayout。 我在回收器视图适配器的populateViewHolder()方法中将线性布局可见性设置为Gone。 @Override protected void populateViewHolder(UsersViewHolder viewHolder, User user, int position) { if (user.getUserEmail().equals(Utils.decodeEmail(userEmail))) { viewHolder.llMain.setVisibility(View.GONE); return; } viewHolder.tvUserEmail.setText(user.getUserEmail()); } 它隐藏了LinearLayout,但行仍留有空白。 是否有任何方法我应该覆盖以克服这个或有什么方法来实现结果?

RecyclerView smoothScroll位于中心位置。 安卓

我正在使用水平布局管理器来处理我的recyclerView。 我需要以下一种方式制作recyclerView:当点击某个项目时 – 将smoothScrool放到该位置并将tat项目放在recyclerView的中心(如果可能的话,例如20中的10项)。 所以我对smoothScrollToPosition没有问题,但如何把项目放在RecyclerView的中心??? 谢谢!

Recyclerview项目点击涟漪效应

我正在尝试将Ripple Effect添加到RecyclerView的项目中。 我在网上看了一下,但找不到我需要的东西。 我已经尝试了android:background属性到RecyclerView本身并将其设置为”?android:selectableItemBackground”但它没有工作: 我的父布局是这样的 和适配器模板如下所示 请给我解决方案

RecyclerView中的项目没有填充它的宽度match_parent

我的RecyclerView及其子项有问题。 它们不会扩展到整个android:layout_width=”match_parent”也不会延伸到fill_parent 。 我试过了两个。 问题是,这项工作完美且没有任何变化,它以某种方式毁了。 我在FragmentDialog显示这个,并且当我向上和向下滚动视图时,子项只会像wrap_content一样展开,它们完全展开但是只要我点击它们(我调用notifyDataSetChanged() )它们就会再次收缩。 这是一张正确填充项目的图片,下面是它们加载时或者我发送信息时的样子。 我使用的StickHeaderAdapter也没有显示标题,直到我点击其中一个项目(之前的这项工作,我也没有改变任何部分)。 这是子行的代码: 以下是我创建ViewHolder的适配器代码的一部分: @Override public BlockAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.block_row, parent, false); return new ViewHolder(view); } 如果有帮助,这是绑定代码: @Override public void onBindViewHolder(BlockAdapter.ViewHolder holder, int position) { if (blockData.isDownloading()) { holder.download_layout.setVisibility(View.VISIBLE); holder.download_bar.setVisibility(View.VISIBLE); if (blockData.getProgress() != null) { holder.download_progress.setVisibility(View.VISIBLE); holder.download_progress.setText(String.format(“%d%%”, blockData.getProgress())); } } else { […]

如何在Android RecyclerView和LayoutManager中使用scrollVerticallyBy()?

我想在recyclelerview中按y方向滚动一定数量的像素。 我知道有一些方法,如scrollToPosition()或scrollToPositionWithOffset() 。 但是,那些并不适合我的需要。 我看到LayoutManager提供了一个方法scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) 。 这听起来像我想要的。 我该如何使用它? 什么是recycler state ? 我没有在网上find任何例子,所以有些代码会很有用。