我想要的是什么:
我想在我的应用程序中添加一个滑动或我在android fling上命名的内容。 我有一个动态数量的视图,数字是我解析的ICS文件的日期数量,我想在所有这些视图上一起滑动。 但是,如果我让我们说其中12个每个都有一个带有8个项目(最大)的ListView,我会猜测它会占用大量内存。所以我希望只有当前所选视图之前的2和初始化之后的2。
我尝试了什么:
在我的搜索中,我在this stackoverflow question附近提到了HorizontalPager。但我不知道如何使用它来运行大量的ListView并动态加载它们。
我尝试了一个ViewGroup,然后添加和删除了一个ListView,但它不起作用,它显示的是ViewGroup而不是ListView
public class HourView extends ViewGroup
{
private ListView listView;
/**
* @param context
*/
public HourView(Context context)
{
super(context);
init(false);
}
/**
*
* @param context
* @param day the current day
*/
public HourView(Context context, String day,
boolean shouldBeVisible)
{
super(context);
this.day = day;
init(shouldBeVisible);
}
private void init(boolean shouldBeVisible)
{
if (shouldBeVisible)
{
listView = new ListView(getContext());
if (day == null)
{
day = Event.dtFormatDay.format(new Date());
}
new GetEvents(day).execute();
addView(listView);
}
else
{
removeAllViews();
listView = null;
}
}
}
GetEvents()是一个AsyncTask(viewgroup类中的一个类),它从本地数据库中获取一些事件,代码是onPostExecute如下
protected void onPostExecute(String errMsg)
{
if (errMsg != null)
{
listView.setAdapter(new SkemaHoursRowAdapter(getContext(), eventItems));
listView.requestLayout();
addView(listView, layoutParams);
}
}
eventItems是一个解析到我的自定义rowadapter的数组(我知道它有效)。显示视图组但不显示listView。
有什么建议吗?
答案 0 :(得分:0)
我最终没有使用视图组,而是我创建了一个loader-listadapter,如果正确的列表尚未更新,我会显示它。
因此,它不是扩展ViewGroup
,而是扩展ListView
,并且它的适配器首先设置为加载适配器,并在加载时将其设置为正确的列表视图。