好的,我有一个自定义的 AdapterView。每当我检测到长按时,我都会调用一个方法来更改自定义的可编辑状态。
public void setEditing(boolean editing) {
this.editing = editing;
//Set editing to children
for (int i=0; i < getChildCount(); i++){
((PresentationPickerGalleryCellView)getChildAt(i)).setEditing(editing);
if (editing == true)
getChildAt(i).setVisibility(View.INVISIBLE);
//((PresentationPickerGalleryCellView)getChildAt(i)).deleteImageButton.setVisibility(View.VISIBLE);
}
}
就我而言,它在主线程中执行。现在,如果我打电话:
getChildAt(i).setVisibility(View.INVISIBLE);
当编辑==true 时,它会正确隐藏整个视图。但如果我打电话:
((PresentationPickerGalleryCellView)getChildAt(i)).deleteImageButton.setVisibility(View.VISIBLE);
deleteImageButton 是单元格内的按钮。它根本不会显示 deleteImageButton。我尝试了 invalidate、postInvalidate、layout、requestLayout、refreshDrawableState,但什么都没有……
有任何想法吗?