我想在android listview中绘制一些章节标题,就像联系人应用程序一样。 当列表视图被拖动时,节标题将平稳移动,谢谢。如何在android listview中像ios的UITableview一样绘制节头?
回答
看看这个Android – Sectioned Headers in ListViews的例子,它很好地描述了如何在ListViews中实现分段头。
而且
Jeff Sharkey's SeparatedListAdapter
感谢。
我发现在Android的一些例子可以解决这个issuse: 请找到PinnedHeaderListView PinnedHeaderListView Example
创建您的列表项目布局一个头布局的例子。我们使用VISIBILITY选项来显示和隐藏HEADER LAYOUT。这将像节标题。
在适配器“getView”方法中,使用前一个LIST ITEMS“名称字段”的第一个字母检查“名称字段(在您显示的名称符合的情况下)”的第一个字母。如果它隐藏了HEADER LAYOUT(带有文本视图),那么用标题文本显示HEADER LAYOUT并显示名称字段的第一个字母。
这里是代码
String nameFirstLetter =“A”; //全局声明,而不是在getView中。
//里面的getView String nameF = Name.slice(0,1);
if(!nameFirstLetter.equals(nameF)){
nameFirstLetter = nameF ;
holder.headerText.setText(nameFirstLetter);
holder.headerLayout.setVisibility(View.VISIBLE);
}else{
holder.headerLayout.setVisibility(View.GONE);
}
这是为了显示Android的列表视图节头中的最简单的方法,但它不会像iPhone节头,即工作。当我们向上/向下滚动时,部分标题会与其他列表项目一起隐藏。
如果列表项是可点击的,这会使标题可点击。特别是现代Android中的涟漪,现在对用户来说是非常明显的。 –
如果任何人需要不同的解决方案,尤其是那些更习惯于iOS开发的解决方案,更喜欢它,或者想模拟iOS外观;我提出以下建议:
http://applidium.com/en/news/headerlistview_for_android/
的逻辑是一样的iOS和执行大部分的腿工作,为您
如果你去他们的github回购,该项目已被标记为不推荐使用:https://github.com/applidium/HeaderListView – ThomasW
你可以看看到SectionedMergeAdapter。如果您有多个数据子列表,您可以将它们拼接在一起并为它们设置标题。
示例代码 -
ListView listView = (ListView) findViewById(android.R.id.list);
ArrayAdapter<Integer> adapter1 =
new ArrayAdapter<>(this, R.layout.item_list, android.R.id.text1, arrayList1);
ArrayAdapter<Integer> adapter2 =
new ArrayAdapter<>(this, R.layout.item_list, android.R.id.text1, arrayList2);
ArrayAdapter<Integer> adapter3 =
new ArrayAdapter<>(this, R.layout.item_list, android.R.id.text1, arrayList3);
TextView tv1 = new TextView(this);
tv1.setText("Header 1");
TextView tv2 = new TextView(this);
tv2.setText("Header 2");
TextView tv3 = new TextView(this);
tv3.setText("Header 3");
SectionedMergeAdapter adapter = new SectionedMergeAdapter();
adapter.addSection(new SectionedMergeAdapter.Section(tv1, adapter1));
adapter.addSection(new SectionedMergeAdapter.Section(tv2, adapter2));
adapter.addSection(new SectionedMergeAdapter.Section(tv3, adapter3));
listView.setAdapter(adapter);
- 1. UITableView节头iOS 5
- 2. UITableView/ListView iOS与Android
- 3. Android ListView Like iOS UITableView
- 4. 如何在NSButtons(深度)中绘制像NSImage一样的图像?
- 5. 如何在android中绘制像这样的形状?
- 6. 实现像UITableView这样的头像
- 7. 像Web.Application中的Feature一样绘制?
- 8. 如何更改按钮图像添加到UITableView的节头在IOS
- 9. 如何绘制一个像样的圆环在Java中
- 10. 在android中绘制箭头头
- 11. 在Android中的ListView像在IOS
- 12. Android - 如何正确绘制一个带箭头的箭头?
- 13. 如何绘制饼像图中IOS
- 14. 我如何设置绘制到ListView Android
- 15. 在android中绘制图像
- 16. 如何在Android中的ListView上绘制形状
- 17. 如何在iOS中添加android像烤面包一样?
- 18. 的UITableView节头和页脚节不更新(重绘问题)
- 19. iOS UITableView绘制的单元格奇怪
- 20. 如何在Android中创建iOS样式的箭头按钮?
- 21. 如何在ListView中绘制水平线?
- 22. iOS:如何让绘图板像绘制一些东西?
- 23. 如何绘制多列UITableView?
- 24. 如何使UITableView像下图一样?
- 25. 如何在android中绘制一条线?
- 26. Facebook Messenger如何绘制聊天头? (Android)
- 27. 如何在WinForms中的两个图像之间绘制箭头?
- 28. 如何在surfaceview上绘制图像android
- 29. 的Android:头在ListView
- 30. Android:如何创建一个像这样的自定义ListView?
谢谢,我已经解决了这个问题。 – stream
这些链接中的任何一个都可以帮助您在用户滚动浏览部分时将标题行固定到屏幕顶部? – topwik
@towpse - 嘿,我没有明白你的意思吗? – user370305