如果在使用DialogFragment时,发现视图不更新,可以尝试在onCreateDialog方法中设置更新相关的代码。
例如:
public class ExampleDialogFragment extends DialogFragment {
private TextView mTextView;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.fragment_dialog, null);
mTextView = view.findViewById(R.id.text_view);
mTextView.setText("Old text");
Button button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.setText("New text");
}
});
builder.setView(view)
.setTitle("Example Dialog")
.setPositiveButton("OK", null)
.setNegativeButton("Cancel", null);
return builder.create();
}
}
在这个例子中,我们可以看到在调用setText方法之后,将TextView的内容更新为'New text”。
这样就可以解决DialogFragment视图不更新的问题了。