1

我有一个带有自定义对话框布局的自定义 DialogPreference。UI 在我第二次单击时崩溃,java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

我尝试用attachToRootequals to充气false。但随后对话框显示为空。

我猜我应该removeView()在对话框被关闭时调用它。但是我没有找到应该在哪里添加那段代码。

自定义布局:

public class PeriodPicker extends LinearLayout {

    public PeriodPicker(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        inflate(context, R.layout.period_picker, this);    
    }

自定义对话框首选项:

public class PeriodPreference extends DialogPreference {
    public PeriodPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        periodPicker = new PeriodPicker(context, attrs);
    }

    @Override
    protected View onCreateDialogView() {
        return periodPicker;
    }
4

0 回答 0