我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.任何想法我能做什么?
我想指向不同的位置和文件名并偏离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)
不工作。有什么建议么?
通常我在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)
两个问题:
s2?s2?我认为两个案例对象相同s2 == s2.我是否需要将case类转换为普通类并覆盖equals?我是否需要一个自己的比较器,或者我可以使用一些Scala API方法来存档它吗?scala ×2
android ×1
case-class ×1
compare ×1
equals ×1
java ×1
javascript ×1
scala.js ×1
vite ×1