2

我正在尝试创建一个自定义滚动组件(ScrollView, ListView, WebView),它的滚动区域(内容区域)可以通过编程方式扩展到内容之外。如果您愿意,请在底部添加“内容填充”。

我不认为添加空视图和布局是一个好方法,因为它看起来有点“hackey”并且强制限制插入顺序。

我知道在 Objective C 中,当为 iOS 编程时,可以直接访问 a 中的contentSize,ScrollView​​ 并且我正在寻找(或创建)类似的东西。这意味着我认为最好直接影响内容区域大小的计算,但我不确定从哪里开始。

任何帮助将非常感激。

4

1 回答 1

1

很明显源码是我第一个去的地方,但是所有这些组件都是几千行的实现。另外,我知道走这条路线有太多潜在的故障点,所以我决定走这条路线,在每个容器的末尾添加一个我控制的视图。

对于ListView我使用合成样式创建了一个自定义ListAdapter,覆盖了我需要添加我的自定义视图作为列表中设置的任何适配器中的最后一个视图的方法。

对于ScrollView我在 中创建了一个隐藏的布局层次结构ScrollView,覆盖视图插入方法以将所有视图插入到我的受控布局中,下面是我的填充视图。

对于WebView,因为我不希望在这个项目中进行任何水平滚动,所以我坚持用我的 custom 包装它ScrollView

如果有人想了解更多细节,您可以发表评论。

于 2013-03-17T16:20:24.313 回答