2

我有一个自定义列表视图,它可以重新排列(拖放)并且显然可以滚动。我需要用这个列表视图添加一个自定义标题,它应该随着列表滚动。

我已经尝试使用自定义标题布局“listView.addHeaderView(header)”。但是在列表重新排列期间标题变得混乱。所以我不想使用 addHeaderView(...)。

我还尝试将作为 LinearLayout 的活动布局放入 ScrollView 中并按照此处的建议展开列表 -如何将 ListView 放入 ScrollView 而不折叠?. 但是,滚动似乎很慢,并且 ScrollView 在重新排列列表项时产生了问题。

那么有没有其他方法可以达到这个效果呢?我更喜欢布局中的一些解决方案。

我在Android UI方面相当缺乏经验。提前致谢。

4

3 回答 3

10

您可以使用以下代码将标题视图添加到列表中,

View header = getLayoutInflater().inflate(R.layout.header, null); 
ListView listView = getListView();  
listView.addHeaderView(header);  
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,android.R.id.text1, names)); 

但是为此,您需要为 Header View 定义层,检查这个Link Android ListActivity with a header or footer

编辑-根据评论,我想提一下,在ListView内部使用 a 不是一个好习惯ScrollView。到目前为止,我发现最好的解决方案是添加HeaderView到您的ListView. 如果 OP 可以提及他面临的问题,那就更好了HeaderView

如果你想要一个可滚动的标题,你绝对应该使用 HeaderView。但是如果你想在 ListView 上方有一个静态标题,你可以使用 TextView 作为 ListView 的 Heading。

于 2012-12-31T07:15:14.243 回答
0

如果您不希望列表具有水平滚动视图,因此您可以创建具有水平线性布局(与列表布局相同)的 Xml 布局,然后将其包含在列表视图布局的顶部,但如果您希望它水平 srcollable,那么您有两个选择:一个是您提到的 addheader 视图,第二个是自定义 ScrollView,您可以在这里找到一个好的解决方案

于 2012-12-31T07:11:46.343 回答
0

你可以在布局中添加静态标题我的意思是你上面有滚动视图的布局为静态标题添加线性布局通过这个问题 它会帮助你

于 2012-12-31T07:03:12.533 回答