Articles of android recyclerview

RecyclerView中的选择模式?

我正试图弄清楚如何达到同样的效果 mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 在RecyclerView实现中。 请帮忙。

RecyclerView适配器notifyDataSetChanged无法正常工作

我延长了 RecyclerView.Adapter 当我打电话的时候: mRecyclerView.getAdapter().notifyDataSetChanged(); 什么都没发生。 刷新视图的唯一方法是再次设置适配器( 请参阅此答案 ): mRecyclerView.setAdapter(new MyAdapter(…)); 这个解决方案有两个问题: 当我再次设置适配器时,我可以看到屏幕上闪烁 列表视图返回第一个位置。 有任何想法吗?

RecyclerView中的Android中心项目

我是android的新手。 我不知道为什么我不能将我的物品放在RecyclerView中。 我想要的是如下图: – android渲染的内容如下图所示: – 有没有办法将RecyclerView中的项目推向中心? 所以它看起来像这样: – 我还提供如下布局文件: – recycler_item.xml fragment_calendar.xml 和java代码: – CalendarAdapter mAdapter = new CalendarAdapter(mDataset); mLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter.setCalendarCallbacks(this); mRecyclerView.setAdapter(mAdapter); mRecyclerView.setItemAnimator(new DefaultItemAnimator()); selectItem(mCurrentSelectedPosition);

嵌套的scrollview + recyclerview,奇怪的自动滚动行为

在一个视图分页器中,我有几个片段,其中一个片段使用带有标题和recyclerview的嵌套scrollview: 标签“header”代表了一个复杂的布局,我不想在这里发布,因为它会大量延伸代码。 当我在标签之间切换时,它会将海峡滚动到回收站视图。 标题是隐藏的,我必须向上滚动才能看到它。 关于是什么原因的任何想法? 如果我可以避免它,我不想在我的适配器中使用types。

Android数据绑定ObservableList行为问题

我发现很难发现android.databinding.ObservableList作为数据绑定function的真正存在理由。 起初它看起来像一个很酷的工具来显示列表,通过数据绑定 ,通过xml将它们添加到RecyclerView 。 为此,我制作了一个像这样的BindingAdapter : @BindingAdapter(value = {“items”}, requireAll = false) public static void setMyAdapterItems(RecyclerView view, ObservableList items) { if(items != null && (view.getAdapter() instanceof MyAdapter)) { ((GenericAdapter) view.getAdapter()).setItems(items); } } 这样,我可以使用属性app:items在设置了MyAdapter的RecyclerView中的项目来更新其项目。 现在ObservableList的最佳function是你可以向它添加一个OnListChangedCallback ,它处理RecyclerView可用的相同事件,以添加/移动/删除/更改其中的项目,而无需实际重新加载整个列表。 所以我想要实现的逻辑是: 我从一个空的MyAdapter开始 从我的API获取项目时,我实例化一个ObservableArrayList包装它们并将其传递给binding 数据绑定调用我的BindingAdapter将项目传递给MyAdapter 当MyAdapter收到新项目时,它清除旧项目并将OnListChangedCallback添加ObservableList收到的ObservableList以处理微更改 如果ObservableList任何更改, MyAdapter将相应更改而不会完全刷新 如果我想显示完全不同的相同项types集,我可以重新设置bindingvariables,因此将再次调用MyAdapter并完全更改MyAdapter项。 例如,如果我想显示Gametypes的项目,我有两个不同的列表:“拥有游戏”和“愿望列表游戏”,我可以调用binding.setItems(whateverItems)来完全刷新显示的项目,但是例如如果我在列表周围移动“愿望清单游戏”以按相关性组织它们,则只会在每个列表中执行微更改而不刷新整个事物。 事实certificate这个想法是不可行的,因为每次对ObservableList进行一次更改时,数据绑定都会重新执行BindingAdapter ,所以例如我观察到了以下行为: 我从一个空的MyAdapter开始 从我的API获取项目时,我实例化一个ObservableArrayList包装它们并将其传递给binding 数据绑定调用我的BindingAdapter将项目传递给MyAdapter 当MyAdapter收到新项目时,它清除旧项目并将OnListChangedCallback添加ObservableList收到的ObservableList以处理微更改 如果ObservableList任何更改,则再次调用MyAdapter ,因此MyAdapter会再次接收整个列表并完全刷新。 这种行为对我来说似乎很破碎,因为防止ObservableList在数据绑定的xml可用。 我不能认真地弄清楚这种行为是可取的合法案例。 我查了一些例子: […]

NullPointerException的原因android.support.v7.widget.RecyclerView.onMeasure

我得到以下exception 01-27 11:15:15.756 18348-18348/com.example.pnimje.newswipelistview E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NullPointerException at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764) at android.view.View.measure(View.java:15848) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:477) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008) at android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:453) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189) at android.view.View.measure(View.java:15848) […]

RecyclerView LayoutManager不同的跨度计数在不同的行上

我想要一个RecyclerView.LayoutManager ,它允许我为不同的行指定不同的跨度计数作为重复模式。 例如,有10个项目的2,3将如下所示: ————- | | | | | | ————- | | | | | | | | ————- | | | | | | ————- | | | | | | | | ————- 我可以想办法用GridLayoutManager和SpanSizeLookup来解决这个问题,但有没有人想出一个更干净的方法呢?

如何使用垂直GridLayoutManager水平居中RecyclerView项目

我有一个使用gridlayoutmanager的垂直recyclerview。 我希望每列都居中,但列始于左侧。 在下图中,您可以看到我在说什么。 我用丑陋的配色方案来说明列和背景。 绿色是recyclerview中每个项目的背景,红色是recyclerview本身的背景: View post on imgur.com 我正在设置: mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); 这是column_item.xml: 这是recyclerview xml:

在android studio中预览水平recyclerview

我发现了如何使用预览列表项 tools:listitem=”@layout/my_item_layour” 但android studio正在将recyclerview预览为垂直列表。 有没有办法告诉Android Studio我会附加一个水平的LinearLayoutManager以便它可以预览水平列表?

使用领域和回收站视图的最佳实践?

你们有关于使用领域和Recyclerview的最佳实践吗? 我知道这是一般性问题,但我在网上找不到任何内容。 例如,我遇到了很多麻烦,试图在一行上实现简单的颜色变化。 例如,考虑这种典型用法: public class User extends RealmObject { @PrimaryKey String name; boolean isSelected; … constructor, getter and setters } public class UserAdapter extends RecyclerView.Adapter { private RealmResults users; public UserAdapter(RealmResults users) { this.users = users; } … public void markAsSelected(int position){ // get the old selected user and deselect it notifyItemChanged(? how do […]