package com.xscm.modulemain.dialog; import android.content.Context; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.xscm.modulemain.R; import com.xscm.modulemain.adapter.PkTimeAdapter; import com.xscm.modulemain.activity.room.contacts.PkTimeContract; import com.xscm.modulemain.databinding.FragmentPkTimeFragmentBinding; import com.xscm.modulemain.activity.room.presenter.PkTimePresenter; import com.hjq.toast.ToastUtils; import com.xscm.moduleutil.RoomAutionTimeBean; import com.xscm.moduleutil.base.BaseMvpDialogFragment; import java.util.ArrayList; import java.util.List; /** *@author qx *@data 2025/7/3 *@description: pk点击开始选择时间 */ public class PkTimeDialogFragment extends BaseMvpDialogFragment implements PkTimeContract.View { private String pk_id; private PkTimeAdapter mAdapter; @Override protected PkTimePresenter bindPresenter() { return new PkTimePresenter(this, getActivity()); } public static void show(String pk_id, FragmentManager fragmentManager) { PkTimeDialogFragment dialogFragment = new PkTimeDialogFragment(); Bundle args = new Bundle(); args.putString("pk_id", pk_id); dialogFragment.setArguments(args); dialogFragment.show(fragmentManager, "PkTimeDialogFragment"); } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); pk_id = getArguments().getString("pk_id"); } @Override public void onStart() { super.onStart(); Window window = getDialog().getWindow(); if (window != null) { // 设置固定高度为 500dp int screenHeight = getResources().getDisplayMetrics().heightPixels; int heightInDp = (int) (screenHeight * 0.6f); ; int heightInPx = (int) heightInDp; window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, heightInPx); // 可选:设置动画样式(从底部弹出) window.setWindowAnimations(com.xscm.moduleutil.R.style.CommonShowDialogBottom); } } @Override protected void initDialogStyle(Window window) { super.initDialogStyle(window); window.setGravity(Gravity.BOTTOM); setStyle(DialogFragment.STYLE_NORMAL, com.xscm.moduleutil.R.style.CustomDialogFragmentTheme); } @Override protected void initData() { } @Override protected void initView() { RecyclerView recyclerView = mBinding.recycleView; GridLayoutManager layoutManager = new GridLayoutManager(requireContext(), 4); // 最大支持 4 列 recyclerView.setLayoutManager(layoutManager); mAdapter = new PkTimeAdapter(); recyclerView.setAdapter(mAdapter); mAdapter.setNewData(getDefaultTimeOptions()); mBinding.tvWheatQd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { RoomAutionTimeBean roomAutionTimeBean = mAdapter.getSelectedTime(); if (roomAutionTimeBean != null) { MvpPre.startPk(pk_id, roomAutionTimeBean.getDays() + ""); dismiss(); }else { ToastUtils.show("请选择时间"); } } }); mBinding.tvWheatCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); } @Override protected int getLayoutId() { return R.layout.fragment_pk_time_fragment; } public static List getDefaultTimeOptions() { List list = new ArrayList<>(); list.add(new RoomAutionTimeBean(1)); list.add(new RoomAutionTimeBean(5)); list.add(new RoomAutionTimeBean(10)); list.add(new RoomAutionTimeBean(15)); list.add(new RoomAutionTimeBean(20)); list.add(new RoomAutionTimeBean(25)); list.add(new RoomAutionTimeBean(30)); list.add(new RoomAutionTimeBean(35)); list.add(new RoomAutionTimeBean(40)); return list; } @Override public void startPk() { dismiss(); } }