|
package com.electric.chargingpile.fragment;
import android.app.Dialog;
import android.os.Bundle;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.DialogFragment;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import com.electric.chargingpile.R;
public class ReportParkingDialogFragment extends DialogFragment implements View.OnClickListener {
public static final String TYPE_FIRST = "first";
public static final String TYPE_SECOND = "second";
public static final String TYPE_THIRD = "third";
private static Dialog mDialog;
private String mType;
private ConstraintLayout container;
private ConstraintLayout first;
private ImageView first_close;
private ConstraintLayout second;
private ImageView second_close;
private Button cancel_report;
private Button report;
private ConstraintLayout third;
private ImageView third_close;
private OnReportParkingDialogFragmentListener reportParkingDialogFragmentListener;
public static ReportParkingDialogFragment newInstance(String type) {
Bundle args = new Bundle();
args.putSerializable("type", type);
ReportParkingDialogFragment fragment = new ReportParkingDialogFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mDialog = new Dialog(getActivity(), R.style.CenterDialog);
mDialog.setCancelable(true);
mDialog.setCanceledOnTouchOutside(true);
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialog.setContentView(R.layout.fragment_dialog_report_parking);
Window window = mDialog.getWindow();
WindowManager.LayoutParams layoutParams = window.getAttributes();
// 布局属性位于整个窗口底部
layoutParams.gravity = Gravity.CENTER;
// 布局属性宽度填充整个窗口,默认是有margin的
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes(layoutParams);
initDialog();
initListener();
return mDialog;
}
private void initDialog() {
mType = (String)getArguments().get("type");
container = mDialog.findViewById(R.id.container);
first = mDialog.findViewById(R.id.first);
first_close = mDialog.findViewById(R.id.first_close);
second = mDialog.findViewById(R.id.second);
second_close = mDialog.findViewById(R.id.second_close);
cancel_report = mDialog.findViewById(R.id.cancel_report);
report = mDialog.findViewById(R.id.report);
third = mDialog.findViewById(R.id.third);
third_close = mDialog.findViewById(R.id.third_close);
if (TYPE_FIRST.equals(mType)) {
first.setVisibility(View.VISIBLE);
second.setVisibility(View.GONE);
third.setVisibility(View.GONE);
} else if (TYPE_SECOND.equals(mType)) {
first.setVisibility(View.GONE);
second.setVisibility(View.VISIBLE);
third.setVisibility(View.GONE);
} else {
first.setVisibility(View.GONE);
second.setVisibility(View.GONE);
third.setVisibility(View.VISIBLE);
}
}
private void initListener() {
container.setOnClickListener(this);
first.setOnClickListener(this);
first_close.setOnClickListener(this);
second.setOnClickListener(this);
second_close.setOnClickListener(this);
cancel_report.setOnClickListener(this);
report.setOnClickListener(this);
third.setOnClickListener(this);
third_close.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.container:
mDialog.dismiss();
break;
case R.id.first_close:
mDialog.dismiss();
break;
case R.id.second_close:
mDialog.dismiss();
break;
case R.id.cancel_report:
mDialog.dismiss();
break;
case R.id.report:
if (reportParkingDialogFragmentListener != null) {
reportParkingDialogFragmentListener.report();
}
mDialog.dismiss();
break;
case R.id.third_close:
mDialog.dismiss();
break;
}
}
public interface OnReportParkingDialogFragmentListener {
void report();
}
public void setOnReportParkingDialogFragmentListener(OnReportParkingDialogFragmentListener listener) {
this.reportParkingDialogFragmentListener = listener;
}
}
|