我正在尝试在Android的RecyclerGrid中实现节标题.我遇到了SuperSLiM,它基本上具备了我需要的所有功能.
现在的问题是,在我看来,它是如何真正实现这一点,以便它正在工作的严重记录.我正在阅读给定的例子,但它充满了我只能部分理解他们所做的功能.
我自己的SuperSliM实现工作到目前为止它显示了我用作项目的标题和自定义视图,但滚动时它疯狂地搞砸了.(多次显示的项目,标题继续项目等)
我的简单问题是,有人能为我提供一个简单易懂的例子,说明如何将SuperSLiM管理器(作为网格管理器)实现到我的RecyclerView中吗?此外,如果有更好的选择,我将不胜感激任何帮助.
如果您不清楚我的布局应该如何,我在下面有一个示例图片:
值得一提的是,我的项目不仅仅是简单的TextView,而且与CardView相当.
非常感谢提前!
android header android-library android-recyclerview superslim
几天以来,我一直在考虑如何将单击事件委托给位于另一个视图下方的视图。重要的是,覆盖视图仍然必须接收点击事件。
情况是这样的:
我有一个包含项目的 RecyclerView。RecyclerView 采用全宽度,每侧都有填充,因此过度滚动动画可以很好地分布在全宽度上。我有一个工具栏位于 RecyclerView(扩展样式)下方。工具栏在窗口的右上边缘有一个菜单项。
现在我不会收到此菜单项上的任何单击事件,因为 RecyclerView 与该菜单项重叠。但如果我考虑填充,RecyclerView 的项目不会与菜单项重叠。但由于填充没有边距,RecyclerView 仍然与菜单项不可见地重叠。但我讨厌将填充更改为边距,因为这样过度滚动动画就会在两侧(左侧和右侧)被剪切。
您对如何将过度滚动动画展开到全宽,或者如何通过 RecyclerView 的填充委托单击事件有什么建议吗?
任何帮助表示赞赏。谢谢。
我的问题可能很简单,但它让我感到困惑:想象一下,我有一组不同的对象,它们都有一个共同的父类" MyClass".
var values = [MyClass]()
Run Code Online (Sandbox Code Playgroud)
但是它们都有自己的特定子类,例如" MyClassSubclass".
values.append(MyClassSubclass())
Run Code Online (Sandbox Code Playgroud)
我现在想创建一个泛型方法,返回我在这个数组中的第一个对象MyClassSubclass.我想阻止转换对象,但是有一个泛型方法,它将子类对象作为T参数,并在此数组中返回第一次出现的子类T.
我想到了这样的事情(但肯定不行):
func getFirst<T: MyClass>(_ ofType : T.Type) -> T?
Run Code Online (Sandbox Code Playgroud)
我想我只是卡住了,我不知道该搜索什么,所以如果有人能帮助我,我会非常感激.
根据以上值编辑示例:
class MyClass {}
class MyClassSubclass : MyClass {}
class MyClassSubclass2 : MyClass{}
var values = [MyClass]()
values.append(MyClassSubclass())
values.append(MyClassSubclass2())
//Return the first class element appearing here as a subclass type
func getFirst<T>(_ ofType : T.Type) -> T?{}
Run Code Online (Sandbox Code Playgroud)
谢谢