Questions tagged «android-recyclerview»

RecyclerView小部件是ListView和GridView的更高级,更灵活的版本。

6
将波纹效果添加到RecyclerView项目
我正在尝试将波纹效果添加到RecyclerView的项目中。我在网上看了一下,但找不到我需要的东西。我认为它必须是自定义效果。我已经尝试将android:background属性设置为RecyclerView本身,并将其设置为“?android:selectableItemBackground”,但是它不起作用。 <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:clickable="true" android:background="?android:selectableItemBackground" android:id="@+id/recyclerView" android:layout_below="@+id/tool_bar"/> 这是我要在其中添加效果的RecyclerView:

6
有什么方法可以在代码中为RecyclerView启用滚动条吗?
如我们所见,RecyclerView比ListView更有效,因此我更喜欢在项目中使用它。但是最近,将其放入自定义ViewGroup时遇到了麻烦。RecyclerView易于在xml中设置滚动条,如下所示: <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent" /> 但是我真的找不到任何方法来在RecyclerView的代码中设置滚动条,我尝试过的是: mRecyclerView.setVerticalScrollBarEnabled(true); 然后我在Android的文档中看到了这一点。 因此,我尝试制作自己的LayoutManager并覆盖我认为自己需要的功能。但是最后我失败了。因此,谁能告诉我如何制作自己的LayoutManager或仅向我展示其他解决方案。谢谢!


9
使用Espresso单击RecyclerView项目内的视图
如何使用Espresso单击RecyclerView项目内的特定视图?我知道我可以使用以下方法在位置0处单击该项目: onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); 但是我需要单击该项目内的特定视图,而不是该项目本身。 提前致谢。 -编辑- 更准确地说:我有一个RecyclerView(R.id.recycler_view),哪些项目是CardView(R.id.card_view)。在每个CardView中,我都有四个按钮(除其他外),并且我想单击特定的按钮(R.id.bt_deliver)。 我想使用Espresso 2.0的新功能,但是我不确定这是可能的。 如果不可能的话,我想使用这样的东西(使用Thomas Keller代码): onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click()); 但我不知道该问些什么。



11
嵌套Scrollview滚动中的Recyclerview滚动,但不能像普通Recyclerview或Nested Scrollview一样快速滚动
我正在使用RecyclerView内部NestedScrollView,并且有效。但是当我RecyclerView在内部LinearLayout或其他物体上使用时,它会根据手势以各种速度滚动。滚动倾听手势,如果我仅向上滑动一点,则滚动一点;而如果我非常快速地滑动,则滚动非常快。现在我的问题是RecyclerView内部NestedScrollView肯定滚动但快速滚动不起作用。但是,我快或慢滑动,RecyclerView或NestedScrollView只滚动一点。 如何使我NestedScrollView或RecyclerView该滚动视图内部以各种速度滚动?

12
在RecyclerView中刷新数据并保持其滚动位置
如何刷新显示在RecyclerView(调用notifyDataSetChanged其适配器的)中的数据,并确保将滚动位置重置为准确的位置? 如果情况良好,ListView则只需检索getChildAt(0),检查其内容getTop()并setSelectionFromTop随后使用相同的准确数据进行调用。 在的情况下,似乎不可能RecyclerView。 我猜我应该使用LayoutManager确实提供了它的它scrollToPositionWithOffset(int position, int offset),但是检索位置和偏移量的正确方法是什么? layoutManager.findFirstVisibleItemPosition()和layoutManager.getChildAt(0).getTop()? 还是有一种更优雅的方式来完成工作?


11
滚动时检测RecyclerView何时到达最底部
我有一个RecyclerView的代码。 recyclerView = (RecyclerView)rootview.findViewById(R.id.fabric_recyclerView); recyclerView.setLayoutManager(layoutManager); recyclerView.addItemDecoration(new RV_Item_Spacing(5)); FabricAdapter fabricAdapter=new FabricAdapter(ViewAdsCollection.getFabricAdsDetailsAsArray()); recyclerView.setAdapter(fabricAdapter); 我需要知道滚动时RecyclerView何时到达最底端的位置。可能吗 ?如果是,怎么办?

21
RecyclerView中的CheckBox继续检查其他项目
这是RecyclerView中我商品的XML <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/cvItems" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_margin="2dp" card_view:cardElevation="0dp" card_view:contentPadding="0dp" card_view:cardBackgroundColor="#FFFFFF" > <LinearLayout android:orientation="horizontal" android:layout_height="fill_parent" android:layout_width="fill_parent"> <TextView android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="0.8" android:id="@+id/tvContent" android:textSize="15dp" android:paddingLeft="5dp" android:paddingRight="5dp" /> <CheckBox android:id="@+id/cbSelect" android:layout_width="0dip" android:layout_weight="0.2" android:layout_height="match_parent" android:button="@drawable/cb_checked" android:gravity="center_horizontal" android:textAlignment="center" android:layout_gravity="center_horizontal" /> </LinearLayout> </android.support.v7.widget.CardView> 这是RecyclerView适配器,可以为其每个项目增加上面的布局: public class AdapterTrashIncome extends RecyclerView.Adapter<AdapterTrashIncome.ViewHolder> { private ArrayList<ObjectIncome> myItems = new ArrayList<>(); …

7
使用ItemTouchHelper.SimpleCallback禁用在RecyclerView中的位置滑动
我正在使用recyclerview 22.2.0和帮助程序类ItemTouchHelper.SimpleCallback启用对列表的滑动到关闭选项。但是,由于上面有一种标头,因此需要禁用适配器第一个位置的滑动行为。由于RecyclerView.Adapter没有isEnabled()方法,因此我尝试通过ViewHolder创建本身中的isEnabled()和isFocusable()方法禁用视图交互,但是没有成功。我试图将滑动阈值调整为一个完整值,例如SimpleCallback的方法getSwipeThreshold()中的0f或1f,但也没有成功。 我的代码的一些片段可以帮助您帮助我。 我的活动: @Override protected void onCreate(Bundle bundle) { //... initialization ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { return false; } @Override public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) { if (viewHolder instanceof CartAdapter.MyViewHolder) return 1f; return super.getSwipeThreshold(viewHolder); } @Override …

21
尝试在Android 5.0上使用RecyclerView时应用崩溃
我试图弄乱新的RecyclerView,并且每当尝试运行它时,我的应用程序立即崩溃。它为我提供了NullPointerException,用于尝试从中访问方法android.support.v7.widget.RecyclerView。我查看了其他帖子,发现大多数人都没有,compile 'com.android.support:recyclerview-v7:+'但是我尝试了一下,但完全没有帮助。目前还不确定要怎么做,我们将不胜感激。这里是错误日志:(我会发布图片,但我还没有10位代表) java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764) at android.view.View.measure(View.java:17430) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) at android.widget.LinearLayout.measureVertical(LinearLayout.java:722) at android.widget.LinearLayout.onMeasure(LinearLayout.java:613) at android.view.View.measure(View.java:17430) …

22
如何为Android L预览导入RecyclerView
尝试使用支持库中的新RecyclerView。我使用SDK管理器下载了支持库的20个更新。 我已经将jar文件添加到libs文件夹中-并添加到了构建路径中-使用RecyclerView祝您好运。 根据Android开发人员的API尝试也使用gradle依赖项-不确定这是否是正确的地方-此页面与AndroidTV相关性更高: com.android.support:recyclerview-v7:20.0.+ 无法gradle同步项目。 有任何想法吗?

3
使用SpanSizeLookup在GridLayoutManager中设置项目的跨度
我想用节标题实现类似网格的布局。想想https://github.com/TonicArtos/StickyGridHeaders 我现在应该做什么: mRecyclerView = (RecyclerView) view.findViewById(R.id.grid); mLayoutManager = new GridLayoutManager(getActivity(), 2); mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 1; case MyAdapter.TYPE_ITEM: return 2; default: return -1; } } }); mRecyclerView.setLayoutManager(mLayoutManager); 现在常规项目和页眉的跨度大小均为1。如何解决此问题?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.