Articles of android recyclerview

在recyclerview中更改所选项目的背景颜色

如何在循环视图示例中仅更改所选视图的背景颜色?只需更改单击项目视图的背景颜色。 一次只能显示一个选定项目,背景颜色会发生变化,其余项目必须与选择前一样。 这是我的代码: 主要活动 public class MainActivity extends AppCompatActivity { RecyclerView rv1; private final String android_versions[]={ “Donut”, “Eclair”, “Froyo”, “Gingerbread”, “Honeycomb”, “Ice Cream Sandwich”, “Jelly Bean”, “KitKat”, “Lollipop”, “Marshmallow” }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); } private void initViews(){ rv1=(RecyclerView)findViewById(R.id.recyclerView1); rv1.setHasFixedSize(true); RecyclerView.LayoutManager layoutManager=new LinearLayoutManager(getApplicationContext()); rv1.setLayoutManager(layoutManager); RecyclerDataAdapter rda=new RecyclerDataAdapter(rv1,getApplicationContext(),android_versions); rv1.setAdapter(rda); } } […]

为什么添加espresso-contrib会导致InflateException?

在我的build.gradle文件中,我有支持库依赖项: compile “com.android.support:appcompat-v7:22.2.0” compile “com.android.support:recyclerview-v7:22.2.0” compile “com.android.support:design:22.2.0” 我也有espresso测试的依赖项: androidTestCompile ‘com.android.support.test.espresso:espresso-core:2.2’ androidTestCompile ‘com.android.support.test.espresso:espresso-intents:2.2’ 此时一切运行正常,但是当我为espresso-contrib添加依赖InflateException ,我的RecyclerView上出现了InflateException android.view.InflateException: Binary XML file line #33: Error inflating class android.support.v7.widget.RecyclerView at android.view.LayoutInflater.createView(LayoutInflater.java:633) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) … Caused by: java.lang.IllegalStateException: Binary XML file line #33: Unable to find LayoutManager android.support.v7.widget.@2131296518 at […]

RecyclerView中的滚动条颜色

如何在recyclerView中更改滚动条的颜色? 我有滚动条但我想改变它的颜色。 我的recyclerView是这样的:

在RecyclerView中确认和撤消删除

我在RecyclerView中有一个简单项目列表。 使用ItemTouchHelper实现“轻扫到删除”行为非常容易。 public class TripsAdapter extends RecyclerView.Adapter { private List mTrips; private Context mContext; private RecyclerView mRecyclerView; […] //Let adapter know his RecyclerView. Attaching ItemTouchHelper @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new TripItemTouchHelperCallback()); itemTouchHelper.attachToRecyclerView(recyclerView); mRecyclerView = recyclerView; } […] public class TripItemTouchHelperCallback extends ItemTouchHelper.SimpleCallback { public TripItemTouchHelperCallback (){ super(ItemTouchHelper.UP | ItemTouchHelper.DOWN, […]

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) […]