Articles of android recyclerview

如何在RecyclerView中制作粘性标题? (没有外部库)

我想修改我的标题视图在屏幕的顶部,如下图所示,而不使用外部库。 就我而言,我不想按字母顺序来做。 我有两种不同types的视图(标题和正常)。 我只想修复顶部,最后一个标题。

有没有更好的方式从适配器获得对父RecyclerView的引用?

我有一个用例,我需要从适配器内部引用父RecyclerView ,特别是在onBindViewHolder方法中。 到目前为止,我正在做的是将其分配给onCreateViewHolder方法中的私有类成员传递viewGroup parent arg像这样: private ViewGroup mParent; @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // inflater logic. mParent = parent; } 并像这样在onBindViewHolder引用父RecyclerView : @Override public void onBindViewHolder(ViewHolder holder, int position) { // binder logic. ((RecyclerView)mParent).blahBlahBlah(); } 有没有更好的方法来做到这一点? 也许RecyclerView.Adapter有一种方法,我可能错过了?

材料devisebuild议的列表与头像,文字和图标

我想创buildMaterial Designed Android应用程序,我试图遵循所有Google关于为新的RecylcerView制作漂亮布局的build议。 RecyclerView具有头像ImageView ,标题和字幕TextView和动作图标ImageView 。 我应该把什么值放在ImageViews适合的width和height所以它支持不同的屏幕大小和密度,以及我应该从系统图标包中select哪些大小的drawables? 材料devise的图标-1.0.1 列表build议: ??? 在XML代码是未知的事情,我不知道该放什么: 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_friend" android:layout_width="wrap_content" android:layout_height="wrap_content" card_view:cardCornerRadius="4dp" card_view:cardUseCompatPadding="true"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content">??? <ImageView android:id="@+id/friend_profile_picture" android:layout_width="40dp"??? android:layout_height="40dp"??? android:layout_alignParentLeft="true" android:layout_margin="16dp" android:layout_centerVertical="true" android:src="@drawable/ic_person_grey600_48dp"/>??? <TextView android:id="@+id/friend_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/friend_online_imageview" android:layout_toRightOf="@+id/friend_profile_picture" android:paddingTop="20dp" android:text="@string/plain_text_for_preview" android:textSize="16sp"/> <TextView android:id="@+id/friend_state" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/friend_name" android:layout_toLeftOf="@id/friend_online_imageview" android:layout_toRightOf="@+id/friend_profile_picture" android:paddingBottom="20dp" android:text="@string/plain_text_for_preview" android:textSize="14sp"/> <ImageView […]

RecyclerView适配器notifyDataSetChanged停止花哨的animation

我正在构build基于RecyclerView的组件,允许用户通过拖放来重新sorting项目。 一旦我在DragListener一侧,我需要它在适配器中的位置来执行正确的移动,但我只能访问视图。 所以这里是我在适配器视图绑定中所做的: @Override public void onBindViewHolder(ViewHolder viewHolder, int position) { Track track = mArray.get(position); viewHolder.itemView.setTag(R.string.TAG_ITEM_POSITION, position); } 这对你来说似乎是正确的吗? 因为如果我移动这样的项目: public void move(int from, int to){ Track track = mArray.remove(from); mArray.add(to, track); notifyItemMoved(from, to); } 然后位置标记不正确了,如果我notifyDataSetChanged(),我失去了花式animation。 任何build议?

RecyclerView展开/折叠项目

我想展开/折叠我的recyclerView的项目,以显示更多的信息。 我想实现SlideExpandableListView的相同效果。 基本上在我的viewHolder中,我有一个不可见的视图,我想做一个平滑的展开/折叠animation,而不是将可见性设置为仅可见/去。 我只需要一次扩展一个项目,并且有一些提升来显示该项目被选中将会很酷。 这是新的Android最近通话logging列表的效果。 只有当select一个项目时,才能看到选项“CALL BACK”和“DETAILS”。

RecyclerView里面的CardView有额外的边距

我在RecyclerView中使用CardView作为元素。 这样做时,android会自动在cardView和屏幕之间以及不同cardView之间生成边距。 <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/galleryCardBGColor" app:cardCornerRadius="2dp" > <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> 我按照链接中的说明将它们整合到我的项目中: using-recyclerview-and-cardview-in-eclipse-adt 我以前一直使用listlay元素的线性布局: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > 这个工作完全正常,列表元素之间没有任何利润空间。 现在我已经将线性布局放置在cardView里面了,导致了额外的边距。 原因是我想为这些要素提供确切的利润率,而我现在提供的任何利润都被添加到这个先前的利润率。 我已经尝试向cardView元素提供零/负填充/边距,但是这些都不起作用。 任何想法,我可以删除这些利润率或以其他方式知道究竟有多less保证金被添加。