Articles of android recyclerview

查找RecyclerView中第一个可见项的顶部偏移量

我有一个RecyclerView + LinearLayoutManger正在使用一个适配器持有聊天消息。 我将聊天消息的数量限制在最近的100个。 这个问题是,当我删除旧的聊天,回收站查看聊天的滚动位置改变,因为索引0被删除。 我开始写下面的代码: int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition(); View v = layoutManager.getChildAt(firstVisiblePosition); if (firstVisiblePosition > 0 && v != null) { int offsetTop = //need to get the view offset here; chatAdapter.notifyDataSetChanged(); if (firstVisiblePosition – 1 >= 0 && chatAdapter.getItemCount() > 0) { layoutManager.scrollToPositionWithOffset(firstVisiblePosition – 1, offsetTop); } } 我认为这会很容易得到第一个可见的项目位置的可见偏移量。 防爆。 如果第一个可见视图是300dp,但只有最后200dp可见,我想获得100偏移量。 这样我可以使用scrollToPositionWithOffset(firstVisiblePosition […]

在底部工作表中更新recyclerview内容失败

我想通过点击事件来改变底部视图中的列表内容,但是我只有空白表单。 这里是一个从BottomSheetSample(github.com/niravkalola/BottomSheetSample)修改的演示。 mainActivity.java package com.nkdroid.bottomsheetsample; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.BottomSheetDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import java.util.ArrayList; import java.util.List; import java.util.Random; public class MainActivity extends AppCompatActivity implements ItemAdapter.ItemListener { private Button btnView, btnDialog; BottomSheetBehavior behavior; private BottomSheetDialog mBottomSheetDialog; private ItemAdapter mAdapter; RecyclerView recyclerView; @Override protected […]

与Sliding RecyclerView协调的折叠/展开视图

我正试图实现以下的影响(也见下图): 应用程序将打开一个视图(地图)部分可见和RecyclerView在默认的锚点(中心图像) 用户滚动RecyclerView ,地图崩溃,列表继续滚动(右图) 用户向下滚动RecyclerView ,地图展开到最大点(注意列表不应该完全滑出屏幕,而是到某个锚定点)(左图)

LinearLayoutManager无法parsinggetOrientation()

我有一个RecyclerView实现在一个片段,我试图添加分频器的代码。 我有RecylcerView按预期工作,但LinearLayoutManager无法parsinggetOrientation()函数。 private RecyclerView mRecyclerView; private RecyclerView.Adapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = (View) inflater.inflate(R.layout.fragment_settings, null); getActivity().setTitle("Settings"); mRecyclerView = (RecyclerView) root.findViewById(R.id.recycler_view_settings); mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(getContext()); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter = new SettingsAdapter(getResources().getStringArray(R.array.setting_list)); mRecyclerView.setAdapter(mAdapter); DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(), mLayoutManager.getOrientation()); mRecyclerView.addItemDecoration(dividerItemDecoration); return root; }

RecyclerView notifyDataSetChanged滚动到顶部位置

当在RecyclerView上调用notifyDataSetChanged它不保留滚动位置和滚动到顶部,是否有任何解决scheme来保留它的滚动位置?

PopupMenu在RecyclerView中没有正确定位

我正在做一个Android应用程序加载数据到一个ImageView里面的RecyclerView作为溢出button。 当用户点击它时,会popup一个PopupMenu选项。 我已经设法显示它,但是这个位置看起来不正确。 请看截图。 只有前两项看起来不错。 这里是源代码: view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final PopupMenu popupMenu = new PopupMenu(context, view); final Menu menu = popupMenu.getMenu(); popupMenu.getMenuInflater().inflate(R.menu.menu_item_action, menu); popupMenu.setOnMenuItemClickListener(onMenuItemClickListener); switch (Global.listMode) { case Global.LIST_STYLE_NORMAL: { menu.findItem(R.id.action_delete).setVisible(false); break; } case Global.LIST_STYLE_FAVORITE: { menu.findItem(R.id.action_add_to_favorite).setVisible(false); break; } case Global.LIST_STYLE_WATCH_LIST: { menu.findItem(R.id.action_add_to_watch_list).setVisible(false); break; } case Global.LIST_STYLE_DOWNLOAD: { menu.findItem(R.id.action_download).setVisible(false); […]

为什么RecyclerView onBindViewHolder只调用一次?

在我的代码中有一个奇怪的错误。 我使用Recycler View(以前没有任何问题)。 我创build了testingArrayList在Recycler中显示它,但是我得到了RecyclerView中唯一的第一行,之后,应用程序停止(不崩溃)像ArrayList完成。 我的主要代码: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_all_tab, container, false); Activity activity = getActivity(); //TODO: For testing ONLY ArrayList<Order> orders = new ArrayList<>(); for(int i = 0; i < 10; i++) { orders.add(new Order(i, i, i)); } […]

交错网格布局pipe理器dynamic列数

我怎样才能使用StaggeredGridLayoutManager RecyclerViewdynamic数量的列。 我已经有工作RecyclerView 。 这里是屏幕我需要做的事情:

在RecyclerView中添加页边距

我正在build立一个使用RecyclerView的Android应用程序。 我想添加分频器到RecyclerView ,我使用这个代码: DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(), linearLayoutManager.getOrientation()); recyclerView.addItemDecoration(dividerItemDecoration); 到目前为止一切正常。 然而,分频器正在采取全屏的大小,我想增加利润。 有没有什么办法,我可以添加边距的分隔线使用的方法,将添加一些空间绘制的矩形,而不是通过创build一个自定义的可绘制的边缘的形状,并将其添加到RecyclerView ?

RecyclerView与GridLayoutManager

装饰RecyclerView具有这种外观和感觉的最好和最简单的方法是什么? 我正在开发一个旅行座位预订应用程序…我知道我可以做与gridlayout经理recyclerview ..但应该是什么步骤我不知道一件事要注意每个巴士有不同的座位安排