Articles of android recyclerview

使用RecyclerView的Android ViewPager在BottomSheet中工作不正常

当我尝试滚动列表时,有时这工作不正确 – BottomSheet拦截滚动事件并隐藏。 如何重现这个: 打开底部 更改ViewPager的页面 尝试滚动列表 结果:将隐藏BottomSheet。 这是示例代码: 编译’com.android.support:design:23.4.0′ MainActivity.java package com.nkdroid.bottomsheetsample; import android.os.Bundle; import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.TabLayout; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private BottomSheetBehavior behavior; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]

如何强制PopupMenu重叠锚点?

如何强制PopupMenu重叠锚点? 我想重新创建类似于此的东西:

滚动时Android工具栏的高程

我尝试在google maps android app中实现一个搜索栏: 当回收者视图处于其初始状态时,工具栏没有高程。 只有当用户开始滚动时,高程才会变得可见。 搜索栏(工具栏)永远不会崩溃。 这是我试图复制的内容: 在这里你可以看到结果: 所以我的解决方案的问题是,工具栏的高程始终可见。 但我希望它只在回收者视图滚动后面才会出现。 设计支持库中有什么能够实现谷歌地图应用程序中的行为吗? 我在用 com.android.support:appcompat-v7:23.2.0 com.android.support:design:23.2.0

已在Recyclerview中设置OnFlingListener的实例

我在我的Android应用程序中使用了RecyclerView。 我的RecyclerView中有很多cardview,因此一次只向用户显示1张cardview。 用户必须滑动才能看到下一张卡片。 我遇到了一个问题,当用户进行滑动时,recyclerview会滚动到最后。 相反,我需要的是当用户滑动时,如本文所述,向用户显示下一张卡片。 如何在水平回收视图上进行滑动只会将下一个项目放入视图 – Android SnapHelper snapHelper = new PagerSnapHelper(); snapHelper.attachToRecyclerView(recyclerView); 我尝试了上面链接中提到的答案。 但是当用户刷卡时我得到一个例外。 请帮我解决一下。 错误 java.lang.IllegalStateException: An instance of OnFlingListener already set. at android.support.v7.widget.SnapHelper.setupCallbacks(SnapHelper.java:114) at android.support.v7.widget.SnapHelper.attachToRecyclerView(SnapHelper.java:102) at com.abc.ui.trm.TrCard.setupCardView(TrCard.java:62) at com.abc.ui.trm.TrCard.setupCardView(TrCard.java:29) at com.abc.ui.core.card.BaseCardView.processCardView(BaseCardView.java:134) at com.abc.ui.card.CardRecyclerAdapter.onViewAttachedToWindow(CardRecyclerAdapter.java:398) at android.support.v7.widget.RecyclerView.dispatchChildAttached(RecyclerView.java:6758) at android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:696) at android.support.v7.widget.ChildHelper.addView(ChildHelper.java:107) at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:7697) at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7655) at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:7643) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1539) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1488) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:585) […]

ViewHolder中的kotlin-android-extensions

class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindata(text: SingleText){ itemView.title.text = text.title itemView.desc.text = text.desc } } 像这个代码,Kotlin在android扩展中有任何缓存? 当我反编译kotlin字节码 public final void bindata(@NotNull SingleText text) { Intrinsics.checkParameterIsNotNull(text, “text”); ((AppCompatTextView)this.itemView.findViewById(id.title)).setText((CharSequence)text.getTitle()); ((AppCompatTextView)this.itemView.findViewById(id.desc)).setText((CharSequence)text.getDesc()); } 这意味着当我在Adapter.onBindViewHolder()中调用binData时,它每次都会调用findViewById 这显着增加了性能损失,并且它没有达到布局重用的目的 Kotlin在ViewHolder的android扩展中有任何缓存逻辑吗?

如何在Android RecyclerView上对字符串进行排序?

我有一个充满CardViews的recyclerView,它有2个参数(两个都是字符串),其中一个是标题,我想有一个按钮按字母顺序对它们进行排序。 因为它没有太多的元素我决定使用插入排序是o(n ^ 2),这是我的实现: public void ISortDes(String[]strings){ int j; String key; int i; for (j = 1; j = 0) ; i–) { if (key.compareTo(strings[i]) > 0){ break; } strings[ i+1 ] = strings[ i ]; } strings[ i+1 ] = key; } for (int k = 0; k < strings.length; k++){ System.out.println(strings[k]); } } […]

如何从RecyclerView获得触摸反馈?

我实现了一个ReceylerView,我无法弄清楚如何获得触摸反馈(来自它的涟漪效应)。 这是我为onClickListener所做的: holder.itemView.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //start Intent } }); 我添加了可点击和可聚焦的XML。 这是回收者视图膨胀的内容:

在recycleview中扩散,使其在添加新项目时自动滚动

如果我们使用DiffUtil.Callback ,那么 adapter.setItems(itemList); diff.dispatchUpdatesTo(adapter); 我们如何确保添加新元素将滚动到新位置。 我有一个案例,我看到项目消失,并在顶部创建一个新的第一个元素,但不可见。 它会隐藏在顶部,直到您向下滚动以使其可见。 在使用DiffUtil之前,我手动实现了这个,在我知道我插入某个位置(在顶部)后,我可以滚动到。

java.lang.IllegalStateException:RecyclerView在Fragment中没有LayoutManager

我正在将Activity更改为Fragment,并在我将RecyclerView充气后立即收到以下错误。 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { —-> View rootView = inflater.inflate(R.layout.layout_containing_recyclerview, container, false); java.lang.IllegalStateException:RecyclerView没有LayoutManager 在我将我的活动改为片段之前,膨胀很顺利。 一些进一步的研究表明,从recyclerview布局中删除所有子元素有助于解决问题。 但是,我不明白为什么会改变任何事情以及为什么它之前的工作与一项活动有关。 作品 不工作 我在这里缺少什么?

从recyclerview android获取已选中checkbox的列表

我已经使用图像,标题和checkbox填充了recyclerView。 我有两个问题。 如何在单击imageview或整个回收项目时选中checkbox。 我必须通过从recyclerview获取所有选中的项目来进行下一个活动。 我的布局: 我的适配器: @Override public void onBindViewHolder(RecyclerViewHolder holder, int position) { final InterestBean model = arrayList.get(position); final int pos = position; RecyclerViewHolder mainHolder = (RecyclerViewHolder) holder;// holder Bitmap image = BitmapFactory.decodeResource(context.getResources(), model.getImage());// This will convert drawbale image into bitmap // setting title mainHolder.title.setText(model.getTitle()); mainHolder.imageview.setImageBitmap(image); mainHolder.checkBox.setChecked(arrayList.get(position).isSelected()); mainHolder.checkBox.setTag(arrayList.get(position)); mainHolder.checkBox.setOnClickListener(new View.OnClickListener() { public void onClick(View […]