小编use*_*744的帖子

如何从RecyclerView.Adapter访问LayoutManager以获取scrollToPosition?

RecyclerView通过为页眉和页脚添加单独的布局来自定义.我创建了常量来确定适配器类中的页眉,页脚和列表项的属性.我还创建了一个ViewHolder模式,并根据视图类型指定要显示的布局.我通过覆盖getItemViewType方法将标题固定在第0个位置和页脚最后位置的页脚.

我想让页脚元素可点击,所以我指定setOnClickListener(new View.OnClickListener())并覆盖onClick(view: View)

我的目标是单击页脚和scrollToPosition0或1(0 =页眉,1 =第一项元素).

那是MyAdapter的定义:

class MyAdapter(context: Context, data: Array[String]) extends RecyclerView.Adapter[RecyclerView.ViewHolder]

...

override def onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int): Unit = holder match {
  ...
  case holder:FooterViewHolder =>
    holder.backToTop.setOnClickListener(new View.OnClickListener() {
      override def onClick (view: View) {
        backToTop(???)
        Toast.makeText (context, "Clicked Footer", Toast.LENGTH_SHORT).show()
      }
    })
  ...
}
...
Run Code Online (Sandbox Code Playgroud)

我读过我只需要这样做: recyclerView.getLayoutManager().scrollToPosition(position)

不幸的是我无法从Adapter类访问LayoutManager.任何想法我能做什么?

java android scala android-recyclerview linearlayoutmanager

8
推荐指数
2
解决办法
5348
查看次数

如何使用 Vite 将入口点更改为默认的“src/main.js”之外的其他内容?

我想指向不同的位置和文件名并偏离Vite标准。

假设我的js文件位于out/frontend/../../out.js. 当我将其重命名main.js并将其复制到我的项目的根目录中时,我index.html就开始工作了vite.config.js。但我更愿意以某种方式改变入口点......

我试过这个:

rollupInputOptions: {
  // or whatever your entry file is
  input: resolve(__dirname, 'out/frontend/my/path/out.js')
}
Run Code Online (Sandbox Code Playgroud)

不工作。有什么建议么?

javascript scala.js vite

6
推荐指数
2
解决办法
9691
查看次数

如何根据CaseObj的属性使List [CaseObj]不同?

通常我在List上调用distinct来删除重复项或将其转换为Set.现在我有了List[MyObject].MyObject是一个案例类,见下文:

case class MyObject(s1: String, s2:String, s3:String) 
Run Code Online (Sandbox Code Playgroud)

假设我们有以下情况:

val myObj1 = MyObject("", "gmail,com", "some text")
val myObj2 = MyObject("", "gmail,com", "")
val myObj3 = MyObject("some text", "gmail.com", "")
val myObj4 = MyObject("some text", "gmail.com", "some text")
val myObj5 = MyObject("", "ymail.com", "")
val myObj6 = MyObject("", "ymail.com", "some text")

val myList = List(myObj1, myObj2, myObj3, myObj4, myObj5, myObj6)
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 如何计算受影响的对象数量?根据内容重复s2
  2. 如何根据列表区分s2?我认为两个案例对象相同s2 == s2.我是否需要将case类转换为普通类并覆盖equals?我是否需要一个自己的比较器,或者我可以使用一些Scala API方法来存档它吗?

compare scala equals case-class

2
推荐指数
1
解决办法
1661
查看次数