我想要什么:
我想在我的应用程序中添加一个滑动或我学到的在 android fling 上命名的内容。我有一个动态数量的视图,这个数字是我解析的 ICS 文件中的日期数量,我想对所有这些视图进行滑动效果。但是,如果我假设其中有 12 个每个都有一个带有 8 个项目(最大)的 ListView,我猜它会占用大量内存。所以我希望只有当前选定视图之前的 2 和之后的 2 被初始化。
我试过的:
在我的搜索中,我偶然发现了这个提到 HorizontalPager 的stackoverflow 问题。但我不知道让它与许多 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。
有什么建议么??