0
我試圖在bottomSheetBehavior內使用gridView。
我得到我的數據異步,並且當用戶點擊我的按鈕時我打電話給setAdapter
。 問題是我看到數據閃爍。我能做些什麼來殺死這個閃爍?BottomSheetBehavior與GridView閃爍
以我的onCreate:
final ViewGroup gridViewContainer = (ViewGroup) findViewById(R.id.bottomSheetContainer);
if (gridViewContainer != null) {
gridView = (GridView) gridViewContainer.findViewById(R.id.actionGridView);
bottomSheetBehavior = BottomSheetBehavior.from(gridViewContainer);
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
switch (newState) {
case BottomSheetBehavior.STATE_EXPANDED:
isBottomSheetQuickActionOpen = true;
gridViewContainer.requestLayout();
break;
case BottomSheetBehavior.STATE_COLLAPSED:
isBottomSheetQuickActionOpen = false;
break;
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
public void onBottomBarIconClicked(View v){
switch(v.getId()){
case R.id.right_bottom_action:
if (bottomSheetBehavior != null) {
if (!isBottomSheetQuickActionOpen) {
setActionsForQuickDialog();
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
} else {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
break;
}
}
private void setupQuickActionDialog() {
ActionsManager actionManager = ActionsManager.get();
List<WidgetMetaData> list = getMyList();
if (CollectionUtils.isNotEmpty(list)) {
if (gridView != null) {
adapterGridView = new AdapterGridView(ContactDetailsActivity.this, list, contact);
gridView.setAdapter(adapterGridView);
}
}
}