问题标签 [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.

0 投票
1 回答
3831 浏览

android - PinnedHeaderListView 滚动和标题问题

背景

我正在尝试模仿 Lollipop 的联系人应用程序显示联系人首字母的固定标题的方式,正如我在这里所写的那样。

问题

由于原始代码(可在此处找到,在“PinnedHeaderListViewSample”文件夹中)不显示除英文以外的字母,因此我不得不稍微更改代码,但这还不够。标题本身也是如此,它现在必须在左侧,而不是在行上方。

一切正常,直到我在 RTL 语言(在我的情况下是希伯来语)上对其进行了测试,而设备的语言环境也更改为 RTL 语言(在我的情况下是希伯来语)。

出于某种原因,滚动和标题本身都变得非常奇怪,奇怪的是它发生在某些设备/版本的 Android 上。

例如,在带有 Kitkat 的 Galaxy S3 上,滚动和滚动条完全错误(我滚动到顶部,但滚动条的位置在中间)。

在装有 Android 4.2.2 的 LG G2 上,它也有这个问题,但它也没有显示标题(固定标题除外),尤其是希伯来语中的标题。

在 Galaxy S4 和 Huwawei Ascend P7(都运行 Kitkat)上,无论我做什么,一切正常。

简而言之,特殊情况是:

  1. 使用 pinnedHeaderListView
  2. 让设备使用 RTL 语言环境,或通过开发人员设置进行
  3. 有英语和希伯来语的列表视图项目
  4. 设置 listView 以显示快速滚动条。
  5. 使用快速滚动器滚动 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 项目:

当它有希伯来语联系人时,滚动条会“发疯”。

0 投票
0 回答
358 浏览

android - 带有固定(粘性)标题的导航抽屉

我有一个在 ListView 中显示粘性标题的程序。我想将此应用于导航抽屉。下面是 PinnedSectionListActivity.java 的代码。如何在导航抽屉菜单中输入此 ListView?

0 投票
1 回答
209 浏览

instagram - Instagram 在 Framer 中推送固定条上的滚动效果

我是一名设计师和 Framer 菜鸟,试图完成以下任务:

与 Instagram 类似,我想将模块的标题栏固定在滚动容器中,并在您向下滚动时让下一个模块标题栏向上推已固定的标题栏。

我可以在 Pixate 中轻松完成此操作,其中固定条以与滚动内容相同的速率移动并在指定坐标处粘在顶部,然后继续在另一个处滚动,但必须为每个条指定坐标 - 结束一个是下一个的开始。

这些条的高度都相同 - 在 Framer 中是否有更清洁的方法来做到这一点?

提前致谢!

0 投票
2 回答
128 浏览

android - 固定 ListView 的嵌套 JsonArray 解析

在此处输入图像描述我正在使用这个来制作一个固定的部分列表视图。我的 API 响应如下。我需要解析嵌套的 jsonarray,但问题是我只在 JSONArray“产品”的第二个循环内获取最后一个对象,这样我就为第一节标题获得了相同的 2 个列表行项目,而不是 2 个不同的列表行物品 。如何解析嵌套的 jsonarray 并将其添加到模型类?

0 投票
0 回答
184 浏览

android - 如何将 json 数据设置为固定的标题列表视图

我正在使用固定标题列表视图在列表视图上设置粘性标题,因为我正在使用这个示例。但该示例包含来自适配器的 som 固定数据,我想设置来自 api 的数据。我的 json 数据如下所示...

我的适配器代码来自链接示例

如何将json数据设置到固定的标题列表视图中,标题是列表的json对象中的“update_ts”,谁能帮我解决这个问题?

0 投票
1 回答
83 浏览

flutter - 如何在颤动中滚动时固定列表的组标题

我想在列表中有一个组标题的固定标题,并且此标题更改取决于滚动的组,就像在 android 中滚动联系人并固定起始字母一样。

例子