0

好的,我有一个自定义的 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,但什么都没有……

有任何想法吗?

4

1 回答 1

0

好的......似乎如果我在开始时设置 View.GONE,然后我尝试设置 View.VISIBLE,它不会显示按钮......我必须只使用 View.INVISIBLE 和 View.VISIBLE : /

于 2012-07-24T09:44:28.273 回答