我正在尝试将一个复杂/非平凡的标题添加到ListView(并且稍微复杂的页脚),需要与其他内容一起滚动。
标题由
组成我熟悉addHeaderView,但如果我尝试添加一个复杂的视图(由一个包含多个子节点的LinearLayout组成),我只会在listview中看到复杂标题的第一个子节点作为标题。
此外,设计中断(因为标题可能是透明的样式,ListView本身不是。也许这可以通过向ListView本身及其条目(不应该是透明的)添加更多样式来解决,但是我的印象是我只是在这里达到ListViews限制。
可以这样做吗?有没有人知道任何具有类似复杂头的应用程序(或更好的代码示例)?我能够找到的所有其他示例都是微不足道的标题:按钮,文本视图或图像(在线和在SO上),几乎没有有趣的样式。
答案 0 :(得分:5)
我试图从头开始重新实现我的滚动列表视图,大致如下:
带有背景图像和单个ListView的main.xml,带有20dip边距和 一些特定的造型:
<item name="android:cacheColorHint">#00000000</item>
<item name="android:scrollbars">@null</item>
<item name="android:background">@android:color/transparent</item>
包含线性布局(垂直)的headerlayout.xml,包含TextView,ImageView和另一个TextView。第一个TextView采用圆角顶角设计,两个文本视图都是透明的,图像上有一个clicklistener。
页眉/页脚大致如下添加
ListView list = (ListView) findViewById(R.id.list);
View header1 = getLayoutInflater().inflate(R.layout.listheader, null, false);
View footer = getLayoutInflater().inflate(R.layout.listfooter, null, false);
ImageView image = (ImageView) header1.findViewById(R.id.image);
list.addHeaderView(header1, null, false);
list.addFooterView(footer, null, false);
list.setAdapter(new MenuAdapter());
这些都不是真正特别的。这主要是以正确的顺序进行操作,拆除并正确设计样式。
答案 1 :(得分:0)
我的建议是为这个过于复杂的列表视图项创建自定义视图。显然,这就是Android IO开发人员提出的建议。 如果您可以在自定义视图中执行此操作,那么您的所有问题都将得到解决。