package com.electric.chargingpile.fragment; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.os.Bundle; import android.support.constraint.ConstraintLayout; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; import com.electric.chargingpile.R; import com.electric.chargingpile.util.LogUtils; import com.mabeijianxi.smallvideorecord2.Log; public class RoutePlanMapScreenDialogFragment extends DialogFragment implements View.OnClickListener { private Dialog mDialog; private OnRoutePlanMapScreenDialogFragmentListener dialogFragmentListener; private Boolean[] changedScreenList; private ConstraintLayout first_left; private ImageView first_left_icon; private ConstraintLayout first_center; private ImageView first_center_icon; private ConstraintLayout first_right; private ImageView first_right_icon; private ConstraintLayout second_left; private ImageView second_left_icon; public static RoutePlanMapScreenDialogFragment newInstance(Boolean[] screenList) { Bundle args = new Bundle(); args.putSerializable("screenList", screenList); RoutePlanMapScreenDialogFragment fragment = new RoutePlanMapScreenDialogFragment(); fragment.setArguments(args); return fragment; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { mDialog = new Dialog(getActivity(), R.style.CommentDialog); mDialog.setCancelable(true); mDialog.setCanceledOnTouchOutside(true); mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); mDialog.setContentView(R.layout.fragment_dialog_route_plan_map_screen); Window window = mDialog.getWindow(); WindowManager.LayoutParams layoutParams = window.getAttributes(); // 布局属性ä½äºŽæ•´ä¸ªçª—å£åº•éƒ¨ layoutParams.gravity = Gravity.BOTTOM; // 布局属性宽度填充整个窗å£ï¼Œé»˜è®¤æ˜¯æœ‰marginçš„ layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; window.setAttributes(layoutParams); initDialog(); initListener(); return mDialog; } private void initDialog() { Boolean[] screenList = (Boolean[]) getArguments().getSerializable("screenList"); int length = screenList.length; changedScreenList = new Boolean[length]; for (int i = 0; i < length; i++) { changedScreenList[i] = screenList[i]; } first_left = mDialog.findViewById(R.id.first_left); first_left_icon = mDialog.findViewById(R.id.first_left_icon); first_center = mDialog.findViewById(R.id.first_center); first_center_icon = mDialog.findViewById(R.id.first_center_icon); first_right = mDialog.findViewById(R.id.first_right); first_right_icon = mDialog.findViewById(R.id.first_right_icon); second_left = mDialog.findViewById(R.id.second_left); second_left_icon = mDialog.findViewById(R.id.second_left_icon); updateScreenIcon(); } private void initListener() { mDialog.findViewById(R.id.screen_close).setOnClickListener(this); first_left.setOnClickListener(this); first_center.setOnClickListener(this); first_right.setOnClickListener(this); second_left.setOnClickListener(this); } private void updateScreenIcon() { if (changedScreenList[0]) { first_left_icon.setImageResource(R.drawable.shaixuan_icon_red_paper_selected); } else { first_left_icon.setImageResource(R.drawable.shaixuan_icon_red_paper_normal); } if (changedScreenList[1]) { first_center_icon.setImageResource(R.drawable.shaixuan_icon_free_park_selected); } else { first_center_icon.setImageResource(R.drawable.shaixuan_icon_free_park_normal); } if (changedScreenList[2]) { first_right_icon.setImageResource(R.drawable.shaixuan_icon_quick_charge_selected); } else { first_right_icon.setImageResource(R.drawable.shaixuan_icon_quick_charge_normal); } if (changedScreenList[3]) { second_left_icon.setImageResource(R.drawable.shaixuan_icon_gaosu_selected); } else { second_left_icon.setImageResource(R.drawable.shaixuan_icon_gaosu_normal); } } @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); if (dialogFragmentListener != null) { dialogFragmentListener.onDismiss(changedScreenList); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.screen_close: dismiss(); break; case R.id.first_left: changedScreenList[0] = !changedScreenList[0]; updateScreenIcon(); break; case R.id.first_center: changedScreenList[1] = !changedScreenList[1]; updateScreenIcon(); break; case R.id.first_right: changedScreenList[2] = !changedScreenList[2]; updateScreenIcon(); break; case R.id.second_left: changedScreenList[3] = !changedScreenList[3]; updateScreenIcon(); break; } } public interface OnRoutePlanMapScreenDialogFragmentListener { void onDismiss(Boolean[] changedScreenList); } public void setOnDismissDialogFragmentListener(OnRoutePlanMapScreenDialogFragmentListener listener) { this.dialogFragmentListener = listener; } }