gpt4 book ai didi

android - 是否可以扩展 AbsListView 以进行新的 ListView 实现?

转载 作者:IT王子 更新时间:2023-10-28 23:44:02 28 4
gpt4 key购买 nike

与许多其他人一样,我一直在考虑创建一个风格不同的 ListView ,并从扩展 AbsListView 开始。根据 Android 文档,AbsListView 是:

Base class that can be used to implement virtualized lists of items. A list does not have a spatial definition here. For instance, subclases of this class can display the content of the list in a grid, in a carousel, as stack, etc.

经过一些努力和对 ListView 实现的审查,看起来可能无法像 ListView 那样扩展 AbsListView,因为这两个类的耦合以及无法访问某些包成员。我偶然发现了这个表格 Romain Guy:

AbsListView and AbsSpinner are designed to be extended within the framework. They could also be extended in 3rd party apps but we did not expose all the necessary protected fields and methods on purpose. We want to be very careful in how we expose such APIs so as to not get stuff for future extensions and internal changes. Our current recommendation is you simply copy/paste the code you need inside your app.

我开始尝试这样做,但复制 AbsListView 变成了复制一堆其他东西的兔子洞,这看起来真的是一个失败的提议。我想看看是否有人成功地扩展了 AbsListView 并且可以分享一种方法。

[1] http://developer.android.com/reference/android/widget/AbsListView.html

[2] https://groups.google.com/forum/?fromgroups#!topic/android-developers/UhbR1tpVvF0

最佳答案

这篇文章大约是 2010 年发布的,但他的评价在今天仍然适用。某些必要的方法和字段受到保护,以防止将来可能因更改 AbsListView 的内部结构而导致不兼容。

最好的解决方案仍然是将 AbsListView 的代码以及必要的依赖项(您提到的兔子洞)复制到您的项目中。

与此同时,如果您想描述您正在尝试构建的 View 类型,我们可能会为您指出一个比创建自己的 AbsListView 更容易的方向?

关于android - 是否可以扩展 AbsListView 以进行新的 ListView 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9637759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com