Android 联系人列表

Android contacts list

我正在为我的应用制作一种通讯录,我想做如下图所示的事情:

联系人姓名将显示在可滚动列表中,但我希望左侧的字母跟随姓名,直到出现下一个字母。我不太确定该怎么做,我想在相应的 xml 布局文件中有这样的结构:

<LinearLayout>
   <ListView>
      <ImageView />
      <ListView />
   </ListView>
</LinearLayout>

这样做正确吗?

您需要做的是添加一个 OnScrollListener (listView.setOnScrollListener) 到您的列表视图。然后实现方法

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)

and/or

public void onScrollStateChanged(AbsListView view, int scrollState)

对于第一个,您可以使用大量信息来管理您想要的内容。比如你想让字母对应列表视图中的第一个元素,你得到第一个元素的第一个字母和draw it.

@Husayn Hakeem:供您参考,您的要求是 Lollipop 的联系人。 ListView的特殊类型(PinnedHeaderListView)with pinned section headers for Android.So please check ListViewVariants Demo 希望对你有帮助。

如果你想用 RecyclerView 实现它,你可以看看这个 project。您可以使用简单的文本或图像自定义左侧图钉。

我们的想法是使用一个 CoordinatorLayout,您在其中放置了图钉。为这个引脚分配一个行为你可以得到你想要的结果。