我有一个带有自定义对话框布局的自定义 DialogPreference。UI 在我第二次单击时崩溃,java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
我尝试用attachToRoot
equals 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;
}