Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使ListView的标题视图(不是节标题)粘贴在顶部_Android_Android Listview - Fatal编程技术网

Android 使ListView的标题视图(不是节标题)粘贴在顶部

Android 使ListView的标题视图(不是节标题)粘贴在顶部,android,android-listview,Android,Android Listview,我有一个带有HeaderView的ListView 我希望HeaderView中的一个视图粘贴在顶部 我已经看到了许多粘性部分标题的示例 我还查看了,但由于我使用的是列表视图,因此无法使用滚动视图 是否有可用于此功能的库,或者我是否应该覆盖列表视图的OnScrollListener 谢谢。我不知道有哪个库可以让您这样做,但是我为标题所做的是为我的xml使用相对论视图,它将具有列表视图。然后根据需要创建标题视图,并为其指定属性 android:layout_alignParentTop="true

我有一个带有HeaderView的ListView

我希望
HeaderView
中的一个视图粘贴在顶部

我已经看到了许多粘性部分标题的示例

我还查看了,但由于我使用的是
列表视图
,因此无法使用
滚动视图

是否有可用于此功能的库,或者我是否应该覆盖
列表视图的
OnScrollListener


谢谢。

我不知道有哪个库可以让您这样做,但是我为标题所做的是为我的xml使用
相对论视图,它将具有
列表视图。然后根据需要创建标题视图,并为其指定属性

android:layout_alignParentTop="true"
然后给出您的
ListView

android:layout_below="@id/idOfHeaderView

这是我所知道的在顶部停靠标题视图的最简单方法。它每次都对我有用。我希望这能有所帮助。

我刚刚写了一大堆代码,但由于合同原因,我无法分享这些代码。基本上遵循概述的方法并应用于listview而不是滚动视图

要点是

  • 创建一个包装器视图,其中包含浮动/粘滞标题和作为同级的listview
  • 在添加带有isSticky布尔值的标题时使用代理方法-如果是sticky,则在listview中添加一个相同大小的假空白标题,并在浮动标题包装器中添加您想要的标题视图(此处使用相对布局)
  • 设置listview的滚动监听器,该监听器跟踪列表中虚拟标题视图的顶部px位置,并将其设置为位于相对布局内的浮动标题的顶部边距
  • 处理所有恼人的边缘案例/OEM overscroll垃圾,使其在所有情况下都能正常工作(如三星)
  • 请记住在布局listview后设置浮动/固定标头的初始位置

    我觉得这有点牵连,需要一些调整才能正确-这是一个我羡慕iOS的时候,任何iOS开发者都会认为你的懈怠,因为它需要一段时间才能实现:D


    在撰写本文时,所有打开的lib都使用滚动视图或列表视图标题。这些方法的问题是列表视图循环视图(因此与滚动视图不同,您不能只保留对虚拟视图的引用)而且,当前的lib似乎使用adapter
    getView
    方法等复制了粘性视图,这对动态列表视图头视图没有好处,因为它们不能循环使用,并且只能有一个父视图,因此重新生成会很烦人(在我的例子中,它有很多功能,所以我不想创建两个相同类型的视图,并插入当前的libs以适合我的解决方案)

    你能显示你正在尝试的代码并说明当前结果是什么吗?如果你使用的是
    addHeaderView(v)
    然后按正确的顺序添加它们,应该不会有问题。@codeMagic我只是查看了我提到的库。我使用了addHeaderView,但我不知道如何使它保持不变。示例是针对节标题而不是针对ListView的HeaderView。谢谢你的回答。我想我的帖子不清楚。我有3个视图y在我的头视图中。我只希望第三个视图保持不变。我明白了。这似乎有点奇怪,但可能我不明白你到底在做什么。你不能让第三个视图成为第一个视图,然后保持在顶部,让下面两个视图与
    列表视图一起移动。不幸的是,它不可能是第一个视图。所以我的解决方法是将第三个视图设置为v查看仅显示在ListView的第一项上的节标题。我理解你的意思,但我认为这一点的措辞有点混乱。基本上,让列表视图xml成为一个相对布局,其中包含一个具有所需标题的视图,然后是设置了LayoutDown的列表视图下方的列表视图。@AdamJohns啊,捕捉得不错,还有谢谢!是的,这实际上会导致循环依赖性错误。我已经编辑过。我真的希望你能分享你的代码,但解释对我来说很有用。似乎我的工作是为我量身定做的。我很同情你-只要说服客户不要这样做;)让我们说这是一个报酬非常丰厚的客户。:)