我正在使用带有列表头的列表片段,并且需要在第一个列表项中添加一组列表。

我正在使用自定义列表适配器加载列表项。现在,对于列表项1,我需要在列表适配器中的列表项顶部添加一个子视图。我该怎么做呢?我不确定可扩展列表项是否是我想要在这里使用的。
我的自定义适配器的getView如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_LIST_ITEM_1:
convertView = mInflater.inflate(R.id.list_item_one, null);
/* add code */
/* add another list adapter? */
break;
case TYPE_LIST_ITEM_OTHERS:
convertView = mInflater.inflate(R.layout.list_item_other, null);
/* add code for below list */
break;
}
convertView.setTag(holder);
}
else {
holder = (ViewHolder)convertView.getTag();
}
return convertView;
}在不丢失标题视图的情况下,最好的方法是什么
myListView.addHeaderView(myHeaderView);发布于 2013-08-08 13:11:18
我想出了一个解决办法,使用以下代码,将其放在这里:
当使用基本适配器更新自定义列表适配器(例如: myCustomListAdapter)时,您可以定义不同的方法来添加列表项和子列表项:
myCustomAdapter.addListItem(new ListItemObject (item));
myCustomAdapter.addSublistItem(new SublistItemObject (item));然后使用getView来膨胀不同的布局,并使用您的自定义对象来确定您想要对它们做什么以及如何显示它们。而列表适配器标识为列表视图的所有部分。
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
int type = getItemViewType(position);
final SuperListItemObject item = (SuperListItemObject) getItem(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_LIST_ITEM:
convertView = mInflater.inflate(R.layout.list_item, null);
holder.text=(TextView) convertView.findViewById(R.id.textview);
break;
case TYPE_SUBLIST_ITEM:
convertView = mInflater.inflate(R.layout.sublist_item, null);
holder.subtext=(TextView) convertView.findViewById(R.id.text);
break;
}
convertView.setTag(holder);
}
else {
holder = (ViewHolder)convertView.getTag();
}
if(item instanceof ListItemObject){
holder.text.setText("this is list item");
holder.text.setTextColor(Color.RED);
//your code for list item
}
if(item instanceof SublistItemObject){
holder.subtext.setText("this is sublist item");
holder.subtext.setTextColor(Color.BLUE);
//your code for sublist item
}
return convertView;
}在这里,可以使用layout_marginLeft=20dp和layout_marginRight=20dp自定义您为子列表膨胀的布局
发布于 2013-07-31 09:38:08
在安卓系统上,如果没有重大漏洞,ScrollView中的ScrollView是不可能的,谷歌表示不会这么做。您可以在列表项中包含一个LinearLayout (其orientation设置为vertical),并手动使用addView()将视图添加到将以布局的设置方向显示的LinearLayout中。
发布于 2013-07-31 07:07:59
我不能肯定我明白你想做什么,但如果我没弄错的话
谷歌强烈不推荐在listView中使用listView,因为它会给用户带来奇怪的滚动和不可预测的UI。
请不要用这样的东西。
但是,如果里面只有几个项目,请使用没有任何滚动的普通容器。
此外,您正在做的事情的另一种选择是expandableListView
https://stackoverflow.com/questions/17958472
复制相似问题