class CustomDialogFragment extends DialogFragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_INPUT, 0);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if(getDialog() != null) {
Window window = getDialog().getWindow();
if (window != null) {
WindowManager.LayoutParams params = window.getAttributes();
params.gravity = Gravity.START | Gravity.TOP;
params.x = (int) MainApplication.getContext().getResources().getDimension(R.dimen.dp_40);
params.y = (int) MainApplication.getContext().getResources().getDimension(R.dimen.dp_12);
window.setAttributes(params);
}
}
mRootView = inflater.inflate(R.layout.dialog_custom, container);
initView();
return mRootView;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
if (savedInstanceState != null) {
dismissAllowingStateLoss();
}
super.onViewCreated(view, savedInstanceState);
Bundle bundle = getArguments();
if(bundle != null){
level = bundle.getInt("level",0);
}
LiveDataHelper.getInstance().getMultiWindowLiveData().observe(this, aBoolean -> {
mIsMultiWindow = aBoolean;
setLayoutWidth(aBoolean);
});
}
public static AdasAccDialog getInstance(int level){
AdasAccDialog dialog = new AdasAccDialog();
Bundle bundle = new Bundle();
bundle.putInt("level", level);
dialog.setArguments(bundle);
return dialog;
}
private void initView() {
}
private void setLayoutWidth(boolean isInMultiWindow){
int width = 0;
if(isInMultiWindow){
width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 440, getResources().getDisplayMetrics());
} else {
width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 520, getResources().getDisplayMetrics());
}
if(getDialog() != null && getDialog().getWindow() != null)
getDialog().getWindow().setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT);
}
}