Tag: android recyclerview

更改片段列表正在改变其他片段

我有一个TabLayout / ViewPager与我的活动中的两个片段。 标签被创建,然后我请求一些信息。 当我得到这个信息,我更新每个选项卡的RecyclerView。 主要活动 private fun setViews() { val adapter = TabsAdapter(supportFragmentManager) adapter.addFragment(NewsFragment(), getString(R.string.dossier_activity_news)) adapter.addFragment(PhotosFragment(), resources.getString(R.string.dossier_activity_photos)) view_pager.adapter = adapter tab_layout.setupWithViewPager(view_pager) // request info } fun setPages(pages: List) { // got info ((view_pager.adapter as TabsAdapter).getItem(0) as NewsFragment).setPages(pages) ((view_pager.adapter as TabsAdapter).getItem(1) as PhotosFragment).setPages(pages) } 问题是:在第二个选项卡( PhotosFragment )中,我想删除所有不包含照片/缩略图的页面。 NewsFragment fun setPages(pages: List) { if (pages.isNotEmpty()) recycler_view.adapter […]

如何在回收视图中为自定义ViewHolder实现OnClickListener?

我正在创建一个应用程序,应该显示在recyclerview中的蓝牙设备,我希望用户能够单击项目执行操作。 现在我只是试图让吐司出现在点击后,但我想可能会显示一个对话框给对选择等,但我明显缺少的东西在我onclicklistener的用法。 我试图让我的ViewHolder类: DeviceHolder实现View.OnClickListener ,并将调用Toast.makeText()内我的onClick覆盖。 然而,没有任何事情发生。 我相信我只是错过了一些小事,并会感谢帮助find问题。 另外,我正在做的这kotlin,我是新来的,如果有可能更有效,kotlintypes的方式做到这一点,也将有所帮助。 我在下面张贴我的代码。 提前致谢。 class DeviceAdapter(val mContext : Context) : RecyclerView.Adapter(){ val mDevices = ArrayList() interface OnClickListener{ fun onClick(v: View) } fun updateItems(list: ArrayList){ mDevices.clear() mDevices.addAll(list) Log.d(TAG, “updating items : $mDevices”) notifyDataSetChanged() } fun ViewGroup.inflate(@LayoutRes res: Int, attachToRoot: Boolean = false): View{ return LayoutInflater.from(mContext).inflate(res, this, attachToRoot) } override fun […]

在一个片段上设置LayoutManager

我创建了一个片段,我试图实现一个recyclerView并加载一个列表。 当我尝试设置layoutManager时,问题即将到来 错误: java.lang.NullPointerException:尝试在com.gn.app的空对象引用上调用虚拟方法’void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView $ LayoutManager)’。 Fragments.StationsFragment.onCreateView(StationsFragment.kt:37) 我无法弄清楚什么是错的。 分段: class StationsFragment : Fragment() { companion object { val TAG: String = StationsFragment::class.java.simpleName fun newInstance() = StationsFragment() } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { activity.title = getString(R.string.title_home) val view = inflater?.inflate(R.layout.fragment_stations, container, false) rcViewStations.layoutManager = LinearLayoutManager(activity) val retrofit = Retrofit.Builder() .baseUrl(url) […]

Android – Kotlin – 对象必须声明为抽象或实现抽象成员

我为我的RecyclerView设置了一个ItemClickLister,像这样: ItemClickSupport.addTo(recyclerView!!).setOnItemClickListener( object : ItemClickSupport.OnItemClickListener { override fun onItemClicked(recyclerView: RecyclerView?, position: Int, v: View?) { val row = recyclerView!!.getChildAt(position) val el = row.findViewById(R.id.active_expandablelayout) as ExpandableLayout if (el.isExpanded) { el.collapse() } else { el.expand() } } } ) 使用我翻译成Kotlin的ItemClickSupport库。 我得到一个object (第2行)的错误,说: 对象必须声明为抽象或实现抽象成员。 我对Kotlin来说真的很陌生,在SO上我也找不到任何解决方案。 任何帮助是极大的赞赏。 编辑: 这是我的ItemClickSupport.kt : class ItemClickSupport private constructor(private val mRecyclerView: RecyclerView) { private […]

我似乎无法得到我的Kotlin回收多重查看代码整理出来

所以我知道这是代码升降,但我有问题得到我的RecyclerView在一个片段排序出来。 我读过一大堆教程,每个人似乎都有不同的做事方式。 只是不能把它钉死…所以这里是我的代码: FRAGMENT XML 数据类 data class SectionOrRow(var needTicketing:String?,var eventSponsor:String?,var eventED:String?,var eventSD:String?,var eventTitle:String?,var mysectionName:String?,var isRow:Boolean){ companion object { public fun createRow(row: String): Unit { // val ret = SectionOrRow() // return ret } public fun createSection(section: String): Unit { // val ret = SectionOrRow(null,section,false) // return ret } } } 碎片类别 package com.example.XXX.listview class […]

Kotlin:null不能是非nulltypes的kotlin的值

如何将空值分配给Kotlin中的ArrayList ? 我正在尝试将null值添加到我的自定义ArrayList中 var mList = ArrayList() mList.add(null) 在Java中它可能,但我怎么能在Kotlin中实现这一点? 我正进入(状态 null不能是非空typeskotlin的值 我需要插入空值来在RecyclerView中加载更多的function

如何捕捉RecyclerView项目,以便每个X项目将被视为一个单元来捕捉?

背景 可以使用以下方法将RecyclerView锁定到其中心: LinearSnapHelper().attachToRecyclerView(recyclerView) 例: MainActivity.kt class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val inflater = LayoutInflater.from(this) recyclerView.adapter = object : RecyclerView.Adapter() { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val textView = holder.itemView as TextView textView.setBackgroundColor(if (position % 2 == 0) 0xffff0000.toInt() else 0xff00ff00.toInt()) textView.text = position.toString() } override fun […]

Espresso,当NestedScrollView或RecyclerView在CoordinatorLayout中时,滚动不起作用

它看起来像CoordinatorLayout打破了Espresso的行为,如scrollTo()或RecyclerViewActions.scrollToPosition() 。 问题与NestedScrollView 对于这样的布局: … … 如果我尝试使用ViewActions.scrollTo()滚动到NestedScrollView内的任何视图,我发现第一个问题是,我得到一个PerformException 。 这是因为这个动作只支持ScrollView而NestedScrollView不能扩展它。 这个问题的解决方法在这里解释,基本上我们可以在scrollTo()复制代码,并改变约束来支持NestedScrollView 。 这似乎工作,如果NestedScrollView不是在CoordinatorLayout但只要你把它放在一个CoordinatorLayout滚动操作失败。 问题与RecyclerView 对于相同的布局,如果我将NestedScrollView替换为RecyclerView ,滚动也会出现问题。 在这种情况下,我使用RecyclerViewAction.scrollToPosition(position) 。 不像NestedScrollView ,在这里我可以看到一些滚动发生。 但是,它看起来像滚动到错误的位置。 例如,如果我滚动到最后一个位置,它将显示倒数第二,但不是最后一个。 当我将RecyclerView移出CoordinatorLayout ,滚动就像它应该的那样工作。 目前,由于这个问题,我们无法为使用CoordinatorLayout的屏幕编写Espresso测试。 任何人遇到同样的问题或知道解决方法?

Recycler中的checkbox勾选为true时,查看项目被immedietaly选中为false

我使用RxJava2,Kotlin和Room作为例子。 以下是将我的项目填充到recyclerView的适配器: class ShoppingListDetailsAdapter(val list: ArrayList, val context: Context, val listener: ShoppingItemCheckboxListener, val isArchived: Boolean) : RecyclerView.Adapter() { override fun getItemCount(): Int { return list.count() } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { val itemView = LayoutInflater.from(parent?.getContext()) .inflate(R.layout.item_shopping_list_element, parent, false) return ViewHolder(itemView) } override fun onBindViewHolder(holder: ViewHolder?, position: Int) { val item = list.get(position) […]

Android Leanback库Horizo​​ntalGridView的scrollToPosition不起作用

我正在实施Android TV应用程序,并使用Leanback library HorizontalGridView 。 我有一个自定义布局。 在创建活动之后,我必须将HorizontalGridView滚动到特定位置,但不幸的是, scrollToPositio(position)方法根本无法在此布局上工作。 它什么都不做。 我发现,当我专门设置layout manager LinearLayoutManager它的作品。 但问题是,当我不使用leanback默认的HorizontalGridView LayoutManager ,使用D-pad聚焦下一个项目时出现问题。 基本上,如果我使用普通的RecyclerView ,带有D-pad的控件不能按预期工作,所以我决定采用leanback实现,这个问题已经解决了,但是到目前为止我还是无法使用scrollToPosition方法。 有任何想法吗? 我的代码片段: 布局: 代码[Kotlin]: binding.photoGalleryRecycler.scrollToPosition(position) binding.photoGalleryRecycler.getChildAt(position)?.requestFocus() 我也尝试了一些这样的黑客: // save default leanback layout manager var defaultLayoutManager = binding.photoGalleryRecycler.layoutManager // set LinearLayoutManager binding.photoGalleryRecycler.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false) // scroll to position and request focus binding.photoGalleryRecycler.scrollToPosition(position) binding.photoGalleryRecycler.getChildAt(position)?.requestFocus() // set default layout […]