Tag: android recyclerview

如何在Android RecyclerView中添加分隔线?

我正在开发一个Android应用程序,我正在使用RecyclerView 。 我需要在RecyclerView添加一个分隔符 。 我试图添加 – recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST)); 下面是我的xml代码 – <android.support.v7.widget.RecyclerView android:id="@+id/drawerList" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" />

有没有办法在Android Studio编辑器中显示RecyclerView内容的预览?

当我将RecyclerView添加到布局时,它显示为空白屏幕。 有没有一种方法,比如通过tools名称空间来显示RecyclerView内容的预览?

如何更新RecyclerView适配器数据?

4天,我无法弄清楚什么是更新RecyclerView的适配器的问题。 我得到一个新的产品清单后,我试图: 从创buildrecyclerView的片段更新ArrayList ,将新数据设置为适配器,然后调用adapter.notifyDataSetChanged() ; 它不起作用。 创build一个新的适配器,像其他人一样,它为他们工作,但没有改变: recyclerView.setAdapter(new RecyclerViewAdapter(newArrayList)) 在Adapter创build一个方法来更新数据,如下所示: public void updateData(ArrayList<ViewModel> viewModels) { items.clear(); items.addAll(viewModels); notifyDataSetChanged(); } 然后,每当我想更新数据列表时,我都会调用这个方法; 它不起作用。 要检查我是否可以以任何方式修改recyclerView,并试图删除至less一个项目: public void removeItem(int position) { items.remove(position); notifyItemRemoved(position); } 一切都保持原样。 这是我的适配器: public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> implements View.OnClickListener { private ArrayList<ViewModel> items; private OnItemClickListener onItemClickListener; public RecyclerViewAdapter(ArrayList<ViewModel> items) { this.items = items; } public […]

Android Recyclerview GridLayoutManager列间距

如何使用GridLayoutManager设置RecyclerView的列间距? 在布局中设置边距/填充没有效果。

RecyclerView:检测到不一致。 无效的项目位置

我们的QA发现了一个bug:在Android设备(Droid Turbo)旋转时,发生了以下与RecyclerView相关的崩溃: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 2(offset:2).state:3 对我来说,它看起来像RecyclerView内部的错误,因为我不能想到这是由我们的代码直接造成的任何方式… 有没有人遇到过这个问题? 什么是解决scheme? 一个残酷的解决方法可能是在发生exception时捕获exception,并从头开始重新创buildRecyclverView实例,以避免出现损坏状态。 但是,如果可能的话,我想更好地理解这个问题(也许可以从源头上解决问题),而不是掩盖它。 该错误不容易重现,但发生时是致命的。 完整的堆栈跟踪: >W/dalvikvm( 7546): threadid=1: thread exiting with uncaught exception (group=0x41987d40) >E/AndroidRuntime( 7546): FATAL EXCEPTION: main >E/AndroidRuntime( 7546): Process: com.oblong.mezzedroid, PID: 7546 >E/AndroidRuntime( 7546): java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 2(offset:2).state:3 >E/AndroidRuntime( 7546): at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3382) >E/AndroidRuntime( 7546): at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3340) >E/AndroidRuntime( 7546): […]

如何用RecyclerView显示一个空视图?

我用来在布局文件中放置一个特殊的视图, 如ListActivity文档中所描述的ListActivity , 当没有数据时将被显示 。 这个视图有id "android:id/empty" 。 <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_data" /> 我想知道新的RecyclerView如何做到这一点?

嵌套的Recycler视图高度不包裹其内容

我有一个pipe理书籍(如播放列表)的应用程序。 我想要显示一个垂直RecyclerView的集合列表,并在每行内部显示一个水平RecyclerView的书籍列表。 当我将内部水平RecyclerView的layout_height设置为300dp时,它显示正确,但是当我将其设置为wrap_content时,它不显示任何内容。 我需要使用wrap_content,因为我希望能够以编程方式更改布局pipe理器以在垂直和水平显示之间切换。 你知道我在做什么错吗? 我的片段布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white"> <com.twibit.ui.view.CustomSwipeToRefreshLayout android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/shelf_collection_listview" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="10dp"/> </LinearLayout> </com.twibit.ui.view.CustomSwipeToRefreshLayout> </LinearLayout> 集合元素布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FFF"> <!– Simple Header –> </RelativeLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/empty_collection" android:id="@+id/empty_collection_tv" android:visibility="gone" android:gravity="center"/> <android.support.v7.widget.RecyclerView android:id="@+id/collection_book_listview" […]

RecyclerView有一个addHeaderView等价物吗?

我正在寻找一个相当于addHeaderView回收视图。 基本上我想有一个图像与2个button被添加为列表视图的标题。 有没有不同的方式来添加一个标题视图到回收站视图? 一个指导的例子将是有帮助的 编辑2(添加片段布局): 添加日志语句后,似乎getViewType只能接收到0的位置。这导致onCreateView只加载一个布局: 10-26 16:32:53.766 5449-5449/co.testapp I/logger info﹕ Adapter-> getItemCount: 5 10-26 16:32:53.766 5449-5449/co.testapp I/logger info﹕ Adapter-> getItemCount: 5 10-26 16:32:53.766 5449-5449/co.testapp I/logger info﹕ Adapter-> getItemCount: 5 10-26 16:32:53.766 5449-5449/co.testapp I/logger info﹕ Adapter-> getItemCount: 5 10-26 16:32:53.766 5449-5449/co.testapp I/logger info﹕ Adapter-> getItemCount: 5 10-26 16:32:53.766 5449-5449/co.testapp I/logger info﹕ Adapter-> getItemCount: 5 10-26 […]

如何滚动到RecyclerView的底部? scrollToPosition不起作用

我想在加载活动后滚动到RecyclerView列表的底部。 GENERIC_MESSAGE_LIST = (ArrayList) intent.getExtras().getParcelableArrayList(ConversationsAdapter.EXTRA_MESSAGE); conversationView = (RecyclerView) findViewById(R.id.list_messages); conversationView.setHasFixedSize(true); conversationViewLayoutManager = new LinearLayoutManager(this); conversationView.setLayoutManager(conversationViewLayoutManager); conversationViewAdapter = new ConversationAdapter(GENERIC_MESSAGE_LIST, this); conversationView.setAdapter(conversationViewAdapter); conversationView.scrollTo(…)抛出一个关于在RecyclerView中不被支持的exception,而conversationView.scrollToPosition(…)似乎没有做任何事情。 上面的代码块后,我补充说 conversationView.scrollToPosition(GENERIC_MESSAGE_LIST.size() + 1) 这不起作用。 GENERIC_MESSAGE_LIST有30个元素。

CardView layout_width =“match_parent”与父RecyclerView宽度不匹配

我有一个片段,其中包含一个带有layout_width =“match_parent”的RecyclerView: <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment" /> RecyclerView中的项目也是一个CardView,也是layout_width =“match_parent”: <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" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="20dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_gravity="center" android:id="@+id/info_text" android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:textAppearance="?android:textAppearanceLarge"/> </android.support.v7.widget.CardView> 我膨胀的项目视图如下: public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { CardView v = (CardView) LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_listitem, null, true); ViewHolder vh = new ViewHolder(v); return […]