我希望我的etsy的交错网格视图在所有元素的中间设置选择,如果数据为100则gridview应将其设置为第50个位置。如果我滚动它然后调用它确实有效但它第一次不起作用何时添加数据。
我在这里尝试了几种解决方案,例如清除焦点然后请求从触摸方法,但没有任何帮助。这是我的代码 - :
class LoadDataAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// my code here
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if(isTopListLoaded) {
productDetailModelArrayList.addAll(0,productDetailModels);
} else {
productDetailModelArrayList.addAll(productDetailModels);
}
final int scrollPosition = gridView.getFirstVisiblePosition() + AppConstants.API_DATA_LIMIT;
if(productDetailModelArrayList.size() == productDetailModels.size()) {
//doesn't work here
gridView.setSelection(productDetailModels.size());
} else {
// works here
if(gridView.getColumnWidth() <= getResources().getDisplayMetrics().widthPixels) {
gridView.setSelection(scrollPosition/2);
} else {
gridView.setSelection(scrollPosition);
}
}
homeScreenAdapter.notifyDataSetChanged();
}
}
有什么想法吗?
答案 0 :(得分:1)
我明白了。
以下是我找到https://github.com/etsy/AndroidStaggeredGrid/issues/135
的解决方案答案 1 :(得分:0)
如果你正在使用Etsy的StaggeredGridView,它目前不支持set Selection。这是问题 https://github.com/etsy/AndroidStaggeredGrid/issues/34