Articles of android recyclerview

RecyclerView wrap_content与GridLayoutManager

我见过使用LinearLayoutManager解决方法,但没有使用GridLayoutManager 。 有任何想法吗?

RecycleView上的选择器问题

我有我的drawable选择器。 这是我的RecycleView适配器 public class AdapterMain extends RecyclerView.Adapter { private Context context; List data = Collections.emptyList(); DataMain current; int currentPos = 0; List pos; List mDataset = data; private SparseBooleanArray selectedItems; private int focusedItem = 0; // create constructor to innitilize context and data sent from MainActivity public AdapterMain(Context context, List data) { this.context = context; […]

RecyclerView滚动不适用于NestedScrollView

我有一个布局,我有一个NestedScrollView包含一个图像,多个按钮和一个RecycleView。 当我说recycleView.smoothScrollToPosition或recycleView.scrollToPosition()时,它目前没有做任何事情。 拒绝滚动甚至像素。 如果我删除NestedScrollView它工作正常,但万一我失去了对周围区域的滚动效果。 你们之前有没有遇到过这个问题?

确定片段重启是由于屏幕旋转还是Viewpager滑动?

我有一个ViewPager Activity 。 ViewPager有很多页面,就像一本书。 每个片段都有RecyclerViews ,内容很多。 以下是我的用例 1 – 当我滑动页面时,RecyclerView必须从列表的开头开始。 2.如果我旋转设备,它应该从旋转前离开的位置的确切位置读取。 如果我不使用任何逻辑,第二种情况完美无缺。 即旋转。 但不是第一种情况。 如果我像下面那样做一些逻辑。 有助于实现第一种情况,但不是第二种情况。 @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); if (savedInstanceState==null) { mIsFirstTime = true; } } @Override public void onResume() { super.onResume(); try { getActivity().invalidateOptionsMenu(); if (!mIsFirstTime) { mListView.scrollToPosition(0); } } catch (Exception e) { e.printStackTrace(); } } […]

Recycler视图不调用getItemCount

我刚刚制作了一个回收站视图但它没有工作,所以我在getItemCount上放了一个断点,并且没有调用该方法。 我从未见过其他任何人都有这个特殊问题,我相信这是非常明显的事情。 这是我的代码。 public class SearchAdapter extends RecyclerView.Adapter { private ArrayList displayList; public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View v) { super(v); } } public class ErrorSearchItem extends ViewHolder { //this is here if there is no other viewholder public ErrorSearchItem(View view) { super(view); } } public class HeaderViewHolder extends ViewHolder { public […]

layoutmanager.FindFirstCompletelyVisibleItemPosition始终返回-1

我的android项目中有一个recyclerview,它在每个视图中显示媒体内容。 我想要实现的是,当我向上和向下滚动时,我能够播放/暂停媒体。 我需要获得完全可见视图的适配器位置。 我正在做这样的事情。 在我的活动片段中,我有这个: layoutmanager = new LinearLayoutManager(Activity); adapter = new FeedAdapter(vid, userName, this.Context); feeditem.SetLayoutManager(layoutmanager); feeditem.SetAdapter(adapter); var onScrollListener = new XamarinRecyclerViewOnScrollListener(Activity, layoutmanager, adapter); 滚动侦听器事件如下所示: public override void OnScrollStateChanged(RecyclerView recyclerView, int newState) { base.OnScrollStateChanged(recyclerView, newState); if (newState == (int)ScrollState.Idle) { layoutmanager = (LinearLayoutManager)recyclerView.GetLayoutManager(); int firstVisiblePosition = layoutmanager.FindFirstCompletelyVisibleItemPosition(); int visible = layoutmanager.FindFirstVisibleItemPosition(); int last = layoutmanager.FindLastVisibleItemPosition(); […]

如何将Hashmap <String,List >扩展到Recyclerview中

我希望键字符串必须作为标题,并且列表必须在RecyclerView中的该映射键下膨胀。 谢谢你的帮助 public class Adapter extends RecyclerView.Adapter{ private WeakHashMap<String, List> mData = new WeakHashMap(); private ArrayList mKeys; ArrayList<WeakHashMap<String,List>> hashMapArrayList; public Adapter(WeakHashMap<String, List> mData, ArrayList<WeakHashMap<String,List>> hashMapArrayList) { this.mData = mData; this.hashMapArrayList=hashMapArrayList; mKeys = new ArrayList(mData.keySet()); } public String getKey(int position) { return (String) mKeys.get(position); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = […]

RecyclerView – 滚动期间如何突出显示中央可见项目

我需要一个像这样的RecyclerView: 它应该做: 每次显示7件物品( DONE ) 将RecyclerView置于中央可见项目( DONE )上 当我向右/向左滚动时,中央项目将“突出显示”(按钮被选中>蓝色)( 需要帮助 ) 当我点击一个按钮时,它会以平滑的scrool为中心( 需要帮助 ) 我使用SnapHelper类将RecyclerView置于中心项目的中心(我检索中心可见项目,让最近的孩子到屏幕中心) 我的适配器: public class RvTrendsGraphAdapter extends RecyclerView.Adapter { private float deviceWidth; private float itemWidth; private List models; private Context context; public RvTrendsGraphAdapter(Context context, List models) { this.models = models; this.context = context; } private Context getContext() { return context; } public […]

ConstraintLayout:无法缩放图像以适合RecyclerView中的比例

我有一个带有StaggeredGridLayoutManager的回收器视图。 我在里面有自定义项目/视图。 每个项目被定义为ConstraintLayout,其中存在应该具有恒定纵横比的图像。 但是图像仍然能够缩放以适应每个跨度的宽度。 然后根据比例调整高度。 但不知何故,图像并没有保持纵横比。 以下是创建回收站视图的xml文件和代码: item.xml activity.xml 用于生成整个视图的代码: adapter = new SampleAdapter(list); StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL); sampleRecyclerView.setLayoutManager(manager); sampleRecyclerView.setAdapter(adapter); 每个项目的宽度设置得很好,适合每个列跨度的宽度。 但是高度没有保持,而且很少。 有人可以帮忙吗? 谢谢

Android RecyclerView适配器在unit testing时给出null

我正在尝试使用AndroidJunit4测试RecyclerView,这是我的测试代码: package com.kaushik.myredmart.ui; // all includes @RunWith(AndroidJUnit4.class) public class ProductListActivityTest { @Rule public ActivityTestRule rule = new ActivityTestRule(ProductListActivity.class); @Test public void ensureListViewIsPresent() throws Exception { ProductListActivity activity = rule.getActivity(); View viewByIdw = activity.findViewById(R.id.productListView); assertThat(viewByIdw,notNullValue()); assertThat(viewByIdw, instanceOf(RecyclerView.class)); RecyclerView productRecyclerView = (RecyclerView) viewByIdw; RecyclerView.Adapter adapter = productRecyclerView.getAdapter(); assertThat(adapter, instanceOf(ProductAdapter.class)); } } 我正面临检查适配器的问题。 虽然productRecyclerView传递非null测试和RecyclerView的实例,但它在最后一行中跟随错误: java.lang.AssertionError: Expected: an instance […]