问题标签 [pinned-header-list-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - PinnedHeaderListView 滚动和标题问题
背景
我正在尝试模仿 Lollipop 的联系人应用程序显示联系人首字母的固定标题的方式,正如我在这里所写的那样。
问题
由于原始代码(可在此处找到,在“PinnedHeaderListViewSample”文件夹中)不显示除英文以外的字母,因此我不得不稍微更改代码,但这还不够。标题本身也是如此,它现在必须在左侧,而不是在行上方。
一切正常,直到我在 RTL 语言(在我的情况下是希伯来语)上对其进行了测试,而设备的语言环境也更改为 RTL 语言(在我的情况下是希伯来语)。
出于某种原因,滚动和标题本身都变得非常奇怪,奇怪的是它发生在某些设备/版本的 Android 上。
例如,在带有 Kitkat 的 Galaxy S3 上,滚动和滚动条完全错误(我滚动到顶部,但滚动条的位置在中间)。
在装有 Android 4.2.2 的 LG G2 上,它也有这个问题,但它也没有显示标题(固定标题除外),尤其是希伯来语中的标题。
在 Galaxy S4 和 Huwawei Ascend P7(都运行 Kitkat)上,无论我做什么,一切正常。
简而言之,特殊情况是:
- 使用 pinnedHeaderListView
- 让设备使用 RTL 语言环境,或通过开发人员设置进行
- 有英语和希伯来语的列表视图项目
- 设置 listView 以显示快速滚动条。
- 使用快速滚动器滚动 listView 或像没有它一样滚动。
编码
代码量非常大,加上我做了 2 个 POC,其中一个与我开始使用的代码有很大不同(使其看起来像在 Lollipop 上)。所以我会尽量显示最小的数量。
编辑:大 POC 代码在 Github 上可用,这里。
“PinnedHeaderActivity.java”
我在“名称”字段的顶部添加了 2 个希伯来语项目:
在“setupListView”方法中,我使快速滚动条可见:
在“NamesAdapter”CTOR 中,我让它支持的不仅仅是英文字母:
“StringArrayAlphabetIndexer.java”
在“getSectionForPosition”方法中,我将其更改为:
list_item.xml
list_item_header.xml
这是两张截图,一张看起来不太好,另一张看起来还不错:
Galaxy S3 kitkat 和 LG G2 4.2.2 - 不显示希伯来语标题,并且在底部附近有奇怪的滚动(与其余滚动相比,滚动到底部非常快):
Galaxy S4 kitkat - 显示标题很好,但底部的滚动很奇怪:
出于某种原因,尽管我在开发人员选项中选择了 Galaxy S4,但它并没有像应有的那样镜像 UI,所以这也可能是它显示标题正常的原因。
我试过的
除了尝试我制作的 2 个 POC(一个更类似于材料设计风格且更复杂的 POC),我尝试了各种使用布局的方法,还尝试使用 LayoutDirection 来强制要显示的标题。
更难的问题是解决快速滚动条,它在更复杂的 POC 上非常奇怪,在简单的 POC 上有点奇怪(在底部附近快速滚动)。
问题
解决这些问题的正确方法是什么?
为什么 RTL 对这种类型的 UI 有问题?
编辑:似乎即使是 Google 的示例也不能在简单的 ListView 上很好地处理 RTL 项目:
当它有希伯来语联系人时,滚动条会“发疯”。
android - 带有固定(粘性)标题的导航抽屉
我有一个在 ListView 中显示粘性标题的程序。我想将此应用于导航抽屉。下面是 PinnedSectionListActivity.java 的代码。如何在导航抽屉菜单中输入此 ListView?
instagram - Instagram 在 Framer 中推送固定条上的滚动效果
我是一名设计师和 Framer 菜鸟,试图完成以下任务:
与 Instagram 类似,我想将模块的标题栏固定在滚动容器中,并在您向下滚动时让下一个模块标题栏向上推已固定的标题栏。
我可以在 Pixate 中轻松完成此操作,其中固定条以与滚动内容相同的速率移动并在指定坐标处粘在顶部,然后继续在另一个处滚动,但必须为每个条指定坐标 - 结束一个是下一个的开始。
这些条的高度都相同 - 在 Framer 中是否有更清洁的方法来做到这一点?
提前致谢!
android - 固定 ListView 的嵌套 JsonArray 解析
我正在使用这个库来制作一个固定的部分列表视图。我的 API 响应如下。我需要解析嵌套的 jsonarray,但问题是我只在 JSONArray“产品”的第二个循环内获取最后一个对象,这样我就为第一节标题获得了相同的 2 个列表行项目,而不是 2 个不同的列表行物品 。如何解析嵌套的 jsonarray 并将其添加到模型类?
android - 如何将 json 数据设置为固定的标题列表视图
我正在使用固定标题列表视图在列表视图上设置粘性标题,因为我正在使用这个示例。但该示例包含来自适配器的 som 固定数据,我想设置来自 api 的数据。我的 json 数据如下所示...
我的适配器代码来自链接示例
如何将json数据设置到固定的标题列表视图中,标题是列表的json对象中的“update_ts”,谁能帮我解决这个问题?