Tag: android recyclerview

RecyclerView适配器中的静态和非静态视图之间有什么区别?

这种方法的优点是什么(在我的类中使用静态嵌套类MyAdapter扩展了RecyclerView.Adapter): static class MyVH extends RecyclerView.ViewHolder {…} 而这个方法(使用成员内部类): class MyVH extends RecyclerView.ViewHolder {…} 或者它不影响性能,两种方法都可以使用?

RecyclerView页眉和页脚

也许这个问题之前已经被问过了,但我似乎无法find一个确切的答案或解决scheme。 我开始使用RecyclerView,并使用LinearLayoutManager实现它。 现在我想添加自定义页眉和页脚项目,这与我的RecyclerView中的其余项目不同。 页眉和页脚不应该粘,我希望他们滚动其余的项目。 有人可以指出一些例子如何做到这一点或只是分享想法。 我会非常感激。 谢谢

使用GridLayoutManager和RecyclerView更改列数

在我的片段内我以下面的方式设置我的GridLayout: mRecycler.setLayoutManager(new GridLayoutManager(rootView.getContext(), 2)); 所以,我只是想在用户旋转手机/平板电脑时将其更改为4 。 我已阅读onConfigurationChanged并试图使其适用于我的情况,但它不会以正确的方式。 当我旋转我的手机,应用程序崩溃… 你能告诉我如何解决这个问题? 这是我的方法来find解决scheme,这是不正确的工作: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); int orientation = newConfig.orientation; if (orientation == Configuration.ORIENTATION_PORTRAIT) { mRecycler.setLayoutManager(new GridLayoutManager(mContext, 2)); } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) { mRecycler.setLayoutManager(new GridLayoutManager(mContext, 4)); } } 提前致谢!

如何实现RecyclerView的ItemAnimator来禁用notifyItemChanged的animation

在我的项目中,我需要禁用RecyclerView的“更改”animation,而notifyItemChanged 。 我调查了RecyclerView的源代码,并重写了android.support.v7.widget.DefaultItemAnimator ,如下所示: private static class ItemAnimator extends DefaultItemAnimator { @Override public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, int fromX, int fromY, int toX, int toY) { if(oldHolder != null) { oldHolder.itemView.setVisibility(View.INVISIBLE); dispatchChangeFinished(oldHolder, true); } if(newHolder != null) { dispatchChangeFinished(newHolder, false); } return false; } } 但我不确定是否符合Google文档的规格: RecyclerView.ItemAnimator.animateChange 根据我对源代码的理解,如果我没有正确地覆盖这个方法,oldHolder 将不会被回收。 请帮我弄清楚如何以正确的方式覆盖animateChange 。

包含ImageView的RecyclerView项目的涟漪效应

我有一个RecyclerView展开下面的网格项目: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/children_tile_border" android:layout_marginTop="@dimen/children_tile_border" android:clickable="true" android:focusable="true" android:background="?selectableItemBackground" tools:ignore="RtlHardcoded"> <com.example.app.ui.widget.SquareImageView android:id="@+id/child_picture" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="visible" android:layout_alignParentBottom="true"/> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="68dp" android:background="@color/tile_text_background" android:gravity="center_vertical" android:layout_alignParentBottom="true"> ………….. </LinearLayout> </RelativeLayout> 但是除非我将SquareImageView's可见性设置为不可见,否则不会出现涟漪效应。 似乎涟漪效应绘制在SquareImageView下方。 我怎样才能让它在SquareImageView绘制?

刷新RecyclerView中的数据并保持滚动位置

如何刷新RecyclerView (在其适配器上调用notifyDataSetChanged )中显示的数据,并确保滚动位置被重置为原来的位置? 在好的情况下, ListView只需要检索getChildAt(0) ,检查其getTop()然后用相同的确切数据调用setSelectionFromTop 。 在RecyclerView情况下似乎不可能。 我想我应该使用它的LayoutManager ,它的确提供了scrollToPositionWithOffset(int position, int offset) ,但是检索位置和偏移量的正确方法是什么? layoutManager.findFirstVisibleItemPosition()和layoutManager.getChildAt(0).getTop() ? 还是有更好的方法来完成这项工作?

Android:控制平滑滚动回收站视图

我正在使用CardView的RecyclerView。 我知道如何控制列表视图的速度。 但不是回收站。 我在search类名称SmoothScroll中search了很多。 如何使用? 我不知道! 现在RecyclerView的默认滚动速度很快。 更新: 我总结了吉尔回答这个

Android使用gridlayoutmanager在recyclerview中的最后一个元素下面添加间距

我正在尝试添加与GridLayoutManager RecyclerView最后一个元素行下面的间距。 为了这个目的,我使用了自定义的ItemDecoration ,最后一个元素如下所示: public class SpaceItemDecoration extends RecyclerView.ItemDecoration { private int space; private int bottomSpace = 0; public SpaceItemDecoration(int space, int bottomSpace) { this.space = space; this.bottomSpace = bottomSpace; } public SpaceItemDecoration(int space) { this.space = space; this.bottomSpace = 0; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { int […]

如何用RecyclerView完全替代listView / GridView?

我注意到,新的RecyclerView类,尽pipe它使事情更清洁一点,缺乏我熟悉的许多function: 分隔线,但这可以通过看这个post或这个问题来解决 “footerDividersEnabled” “headerDividersEnabled” “listSelector”,但也许我应该简单地设置每个视图? “fastScrollEnabled” “smoothScrollbar” “textFilterEnabled” 我还试图找出是否有一种新的方法来使用新的类进行过滤(通过实现Filterable与ListView完成)。 我找不到是否有这样的事情 “tools:listitem”,以显示UIdevise器上的项目。 这些是我用的,但也许还有其他的我错过了。 是否有任何教程或一些指导如何取代这些东西?

用于RecyclerView的GridLayoutManager上的方形布局

我尝试使用方形图像进行网格布局。 我认为,通过操纵onMeasure来操作GridLayoutManager一定是可能的 super.onMeasure(recycler, state, widthSpec, widthSpec); 代替 super.onMeasure(recycler, state, widthSpec, heightSpec); 但不幸的是,这并没有奏效。 有任何想法吗?