Android scrollby() 阻塞了我的 UI
Android scrollby() blocks my UI
我使用了自定义 coveflow,当我加载少量数据时一切正常,但它不适用于大量数据,
看看我下面的代码
if (mAdapter == null || mAdapter.getCount() == 0)
throw new IllegalStateException(
"You are trying to scroll container with no adapter set. Set adapter first.");
if (mLastCenterItemIndex != -1) {
final int lastCenterItemPosition = (mFirstItemPosition + mLastCenterItemIndex)
% mAdapter.getCount();
final int di = lastCenterItemPosition - position;
final int dst = (int) (di * mCoverWidth * mSpacing);
mScrollToPositionOnNextInvalidate = -1;
scrollBy(-dst, 0);
} else {
mScrollToPositionOnNextInvalidate = position;
}
invalidate();
我已经使用此代码将我的项目移动到平板电脑的中心,现在我要解释我的观点,在一个 activity 我的一半屏幕占据 coverflow 而另一半占据 mapview,当我单击地图标记图标我需要在 coverflow 中将特定项目移动到我的屏幕中心,所以基本上我的 coverflow 和地图同步,更改必须影响两者,
当我加载少量数据时它工作得很好,但现在我尝试在单击标记时加载 11000 条记录,然后我的 UI 由于 Coverflow 中的 scrollby 而被阻止,你能提出任何移动的想法吗我的物品中心??或者有什么方法不影响 UI
欢迎所有建议
谢谢
只需将您的代码包含在
new Thread(new Runnable() {
public void run () {
//.........
}
}).start();
或按部分加载项目
我使用了自定义 coveflow,当我加载少量数据时一切正常,但它不适用于大量数据,
看看我下面的代码
if (mAdapter == null || mAdapter.getCount() == 0)
throw new IllegalStateException(
"You are trying to scroll container with no adapter set. Set adapter first.");
if (mLastCenterItemIndex != -1) {
final int lastCenterItemPosition = (mFirstItemPosition + mLastCenterItemIndex)
% mAdapter.getCount();
final int di = lastCenterItemPosition - position;
final int dst = (int) (di * mCoverWidth * mSpacing);
mScrollToPositionOnNextInvalidate = -1;
scrollBy(-dst, 0);
} else {
mScrollToPositionOnNextInvalidate = position;
}
invalidate();
我已经使用此代码将我的项目移动到平板电脑的中心,现在我要解释我的观点,在一个 activity 我的一半屏幕占据 coverflow 而另一半占据 mapview,当我单击地图标记图标我需要在 coverflow 中将特定项目移动到我的屏幕中心,所以基本上我的 coverflow 和地图同步,更改必须影响两者,
当我加载少量数据时它工作得很好,但现在我尝试在单击标记时加载 11000 条记录,然后我的 UI 由于 Coverflow 中的 scrollby 而被阻止,你能提出任何移动的想法吗我的物品中心??或者有什么方法不影响 UI
欢迎所有建议 谢谢
只需将您的代码包含在
new Thread(new Runnable() {
public void run () {
//.........
}
}).start();
或按部分加载项目