Android在ExpandableListView中的notifyDataSetChanged()上变黑

时间:2012-10-03 16:19:21

标签: android listview user-interface expandablelistview expandablelistadapter

如果问题有点模糊,我想提前道歉,但我很难提供可能对正在发生的事情负责的代码的特定部分。

我扩展了一个BaseExpandableListAdapter,用于我的一个活动(StreamActivity)来填充ExpandableListView。此活动是ActivityGroup的一部分。然后,事实证明我需要一个非常类似的适配器用于不属于组的不同Activity(StreamUserActivity)。我决定进一步扩展我的自定义适配器,只覆盖某些不同的方法。行结构背后的逻辑对于两个适配器都是相同的。

但是,当我使用第二个适配器时,独立Activity的那个,当我调用notifyDataSetChanged()时,在列表更新之前,屏幕变黑。在某些场合,它只是暂时的眨眼,有时它会保持这种状态。然后,如果我滚动列表,它会再次出现,但ExpandableListView上方的元素不会重新出现。不过,我可以触摸这个元素中的活动元素,它会按照计划将我转移到另一个Activity。

StreamUserActivity从StreamActivity中以下列方式启动:

Intent streamUserProfiletIntent = new Intent(this, StreamUserProfileActivity.class);
streamUserProfiletIntent.putExtra(StreamUserProfileActivity.USER_JID,
OpenfireRosterProvider.getInstance(getApplicationContext()).getCurrentUser().getJabberId());
startActivity(streamUserProfiletIntent);

这会导致屏幕变黑。但是,如果我这样开始:

Intent streamUserProfiletIntent = new Intent(this, StreamUserProfileActivity.class);
streamUserProfiletIntent.putExtra(StreamUserProfileActivity.USER_JID,
OpenfireRosterProvider.getInstance(getApplicationContext()).getCurrentUser().getJabberId());
startChildActivity("StreamUserProfiletIntent", streamUserProfiletIntent);

...没有闪烁,但新的Activity是ActivityGroup的一部分,这不是我需要的。

有关导致此问题的原因的任何想法?代码的哪一部分可能对此负责,以便我可以分享它。

0 个答案:

没有答案