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);

edit==true の場合、ビュー全体が正しく非表示になります。しかし、私が電話した場合:

((PresentationPickerGalleryCellView)getChildAt(i)).deleteImageButton.setVisibility(View.VISIBLE);

deleteImageButton は、セル内のボタンです。deleteImageButton はまったく表示されません。無効化、postInvalidate、レイアウト、requestLayout、refreshDrawableState を試しましたが、何も...

何か案は?

4

1 に答える 1

0

わかりました...最初にView.GONEを設定してから、View.VISIBLEを設定しようとすると、ボタンが表示されないようです... View.INVISIBLEとView.VISIBLEのみを操作する必要があります: /

于 2012-07-24T09:44:28.273 に答える