Articles of android recyclerview

在Recyclerview外拖放视图

我想要实现的目标:我希望在可滚动布局(带有GridlayoutManager Recyclerview )中有一个视图, GridlayoutManager包含tile(Views)。 拖放RecyclerView内的项目应调整图标的位置并与其他元素交换。 当拖动开始时, RecyclerView上方的图标将变为垃圾桶图标,将视图拖动到此图标将从此RecyclerView删除它。 我尝试了这个优秀的教程 ,但是我找不到如何处理Recyclerview之外的拖拽方法,因为ItemTouchHelper.Callback只使用Recycler.ViewHolder元素作为可能的目标。 如果视图移出边界,方法interpolateOutOfBoundsScroll()会给出反馈,但只返回屏幕外的总大小,但没有坐标。 此外,尝试将视图拖出Recyclerview始终会导致切割视图,使其通过Recyclerview的边框。 有谁知道我怎么能达到这个效果?

在顶部更新时,RecyclerView崩溃

我在我的应用程序中有一个RecyclerView一切正常工作我在滚动时最后一项是可见的我在底部添加了一些项目,它工作正常。 现在问题是我有一个Handler ,每5秒运行一次并检查Web服务是否有任何更新,如果有任何更新,我只需将数据加载到RecyclerView的顶部,当我有不滚动RecyclerView ,但当我滚动它并调用Handler程序(因为它是每5秒调用一次)然后在更新顶部的RecyclerView时应用程序崩溃。 更新顶部的function: public void addOnTop(ArrayList topItemList) { for (int i = topItemList.size() – 1; i >= 0; i–) { itemList.add(0, topItemList.get(i)); } notifyItemRangeInserted(0, topItemList.size()); notifyDataSetChanged(); } 这是错误日志: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{419b8760 position=5 id=-1, oldPos=-1, pLpos:-1 no parent} at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:4214) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4345) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4326) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1955) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1364) at […]

使用RecyclerView.Adapter在onBindViewHolder()内设置onItemClickListener

我有一个自定义对象: Student.class public class Student { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } } 然后我像这样实现RecyclerView.Adapter : MyAdapter.class public class MyAdapter extends RecyclerView.Adapter { private […]

没有连接适配器; 单击后退按钮并再次启动应用程序时跳过布局

Android Studio 3.2 Canary 18 kotlin_version = 1.2.50 我有一个使用recyclerview和适配器的简单应用程序。 应用程序启动时会加载所有数据。 但是,当我单击后退按钮并再次启动应用程序时。 它不会显示数据(空白)。 如果我从内存中清除应用程序并启动应用程序。 数据将正常加载。 我从sqlite加载数据,每次都加载数据。 因为它填充了insectDataModelList 。 进入RecyclerView.java源代码后,原因是mAdapter为null。 但是,当我将它设置为recyclerview时,我检查了适配器是否正确。 void dispatchLayout() { if (mAdapter == null) { Log.e(TAG, “No adapter attached; skipping layout”); // leave the state in START return; } … } 我的MainActivity.java是Java public class MainActivity extends AppCompatActivity { private RecyclerView rvInsects; @Override protected […]

在Recyclerview的情况下,listview.getCount的等价物是什么

我使用listview.getCount()如何在Recyclerview情况下获得计数 id = receiver + “-” + splashList.getCount(); 适配器中的自定义方法: public void setImage(String my_image, String r_image) { byte[] decodedrimage = Base64.decode(r_image, Base64.DEFAULT); Bitmap decodedrByte = BitmapFactory.decodeByteArray(decodedrimage, 0, decodedrimage.length); if (my_image.equals(“empty”)) { imgflag = 1; } else { byte[] decodedmyimage = Base64.decode(my_image, Base64.DEFAULT); Bitmap decodedmyByte = BitmapFactory.decodeByteArray( decodedmyimage, 0, decodedmyimage.length); rimage = createCirclebitmap(decodedrByte); myimage = createCirclebitmap(decodedmyByte); } […]

Android – java.lang.IndexOutOfBoundsException:项目位置0(0)无效。 项目数:0

我在日志中收到此exception – java.lang.IndexOutOfBoundsException: Invalid item position 0(0). Item count:0 at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4622) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) at com.jivemap.app.CustomizedViews.MyLinearLayoutManager.measureScrapChild(MyLinearLayoutManager.java:66) at com.jivemap.app.CustomizedViews.MyLinearLayoutManager.onMeasure(MyLinearLayoutManager.java:30) at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2614) at android.view.View.measure(View.java:15318) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413) at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1061) at android.widget.LinearLayout.onMeasure(LinearLayout.java:599) at android.view.View.measure(View.java:15318) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413) at android.widget.LinearLayout.measureVertical(LinearLayout.java:704) at android.widget.LinearLayout.onMeasure(LinearLayout.java:597) at android.view.View.measure(View.java:15318) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413) at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1061) at android.widget.LinearLayout.onMeasure(LinearLayout.java:599) at android.view.View.measure(View.java:15318) at android.widget.ListView.setupChild(ListView.java:1849) at android.widget.ListView.makeAndAddView(ListView.java:1764) […]

如何在android中的相同recyclerview中填充具有相同字段或属性的不同对象

我将开发足球应用程序,并跟随json响应。( 链接 ) 我有两个不同的类,具有不同的名称,但具有相同的属性或字段,并希望显示一个相同的单个RecyclerView 。 在这里,我有worldmatch和world具有相同的字段,如matchTime , startTime和endTime 。 我使用jsontopojo插件创建了pojo类。 这是主要的事情,我想在0号位置显示世界赛事 ,在俱乐部的基础上展示其他位置世界。 您可以在图片中查看更多详细信息。 这必须是第一个标签( 世界 ),类似于欧洲 , 亚洲等具有相似模式的其他标签。 TAB1(世界) —————position 0 (All match)—————— | | 930 1100 1130 and so on ( horizontal recyclerview) | ——————————————- —————position 1(Barcelona)—————— | | 1130 1230 1330 1430 and so on ( horizontal recyclerview) | ——————————————- —————position 2(Chelsea)—————— | […]

分页不适用于NestedScrollView中的RecyclerView

如何实现NestedScrollView的recyclerview分页?

如何在键盘出现时按下recylerView?

我想像whatsapp一样构建消息布局。 我有一个edittext和一个recylerView。 问题是键盘出现时隐藏了消息! 所以,让我们说这是RecylerView: —item 1— —item 2— —item 3— —item 4— —EditText— 当键盘出现时,我明白了: —item 1— —item 2— —EditText— —Keyboard— 但我想得到这个: —item 3— —item 4— —EditText— —Keyboard— 注意:当我设置linearLayoutManager.setStackFromEnd(true); 它有效但当有一条消息出现在页面底部时。

在RecyclerView中设置contentInset

我正在尝试像iOS中的UICollectionView一样实现RecyclerView 。 我想在回收站视图的底部设置一个contentInset ,但我找不到这样做的选项。 Android有类似的东西吗?