【发布时间】:2021-03-31 23:12:48
【问题描述】:
我正在使用RecyclerView 和GridLayout 来展示产品。我有一个按钮,单击时会更改跨度大小。我使用gridLayoutManager.setSpanSizeLookup 来动态更改跨度大小。一切正常,但是当我单击按钮时,需要一些时间来更改跨度大小。我想在这个过程中显示一个进度条。我该怎么做?
public void onGridViewClick() {
if (isGridViewEnabled){
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch (adapter.getItemAtPosition(position).getType()) {
case BaseGoodkartSearchResultModel.SEARCH_ITEM: return 2;
case BaseGoodkartSearchResultModel.SWAN_ITEM: return 2;
case BaseGoodkartSearchResultModel.OFFER_EXPIRED: return 2;
}
return 1;
}
});
isGridViewEnabled=false;
}else {
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch (adapter.getItemAtPosition(position).getType()) {
case BaseGoodkartSearchResultModel.SEARCH_ITEM: return 1;
case BaseGoodkartSearchResultModel.SWAN_ITEM: return 2;
case BaseGoodkartSearchResultModel.OFFER_EXPIRED: return 2;
}
return 1;
}
});
isGridViewEnabled=true;
}
}
【问题讨论】:
-
“这需要一些时间”是什么意思?是不是比 recyclerview 的单次布局 pass 还要长?
-
cutt.ly/9ciULzN请查看此视频
标签: android android-recyclerview grid-layout