package safeluck.drive.evaluation.customview; import android.app.Dialog; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Build; import android.os.Bundle; import android.os.Parcelable; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.DialogFragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import safeluck.drive.evaluation.DB.route.RouteBean; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.RouteSelectAdapter; import safeluck.drive.evaluation.adapter.SysSettingPagerAdapter; import safeluck.drive.evaluation.bean.SysExamSettingLargeMenu; import safeluck.drive.evaluation.fragment.BaseSettingFragment; import safeluck.drive.evaluation.fragment.shop.ShopFragment; import safeluck.drive.evaluation.listener.OnItemClickListener; /** * @ProjectName: DriveJudge * @Package: safeluck.drive.evaluation.customview * @ClassName: SelectDialog * @Description: java类作用描述 * @Author: 李占伟 * @CreateDate: 2020-04-23 15:03 * @UpdateUser: 更新者 * @UpdateDate: 2020-04-23 15:03 * @UpdateRemark: 更新说明 * @Version: 1.0 */ public class SelectMutliDialog extends DialogFragment implements View.OnClickListener { private static final String TAG = "SelectDialog"; private Button button; private RadioGroup rgb; public static final int SELECT_NONE = -1; private int result = SELECT_NONE; private List routeBeanList; private RecyclerView mRecy; private RouteSelectAdapter mAdapter; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (getDialog() != null) { Window window = getDialog().getWindow(); if (window != null) { window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); getDialog().setOnShowListener(dialog -> { window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); hideBottomUIMenu(); }); } } View view = inflater.inflate(R.layout.layout_select_dlg_multi,container,false); Bundle bundle = getArguments(); if (bundle != null) { routeBeanList = bundle.getParcelableArrayList("content"); } initView(view); return view; } private void initView(View view) { mRecy = (RecyclerView) view.findViewById(R.id.recy); mAdapter = new RouteSelectAdapter(getActivity()); LinearLayoutManager manager = new LinearLayoutManager(getActivity()); mRecy.setLayoutManager(manager); mRecy.setAdapter(mAdapter); mAdapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position, View view) { Toast.makeText(getActivity(), position+"", Toast.LENGTH_SHORT).show(); result = routeBeanList.get(position).getId(); if (onSelectedListener != null){ onSelectedListener.makeYourChoice(result); } dismiss(); } }); mRecy.post(new Runnable() { @Override public void run() { // Init Datas mAdapter.setDatas(routeBeanList); } }); // button = view.findViewById(R.id.btn_sure_); // button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_sure_: if (onSelectedListener != null){ onSelectedListener.makeYourChoice(result); } dismiss(); break; } } public interface OnSelectedListener{ void makeYourChoice(int res); } private OnSelectedListener onSelectedListener; public void setSelectedListener(OnSelectedListener onSelectedListener){ this.onSelectedListener = onSelectedListener; } @Override public void onStart() { super.onStart(); Dialog dialog = getDialog(); if (dialog != null){ DisplayMetrics dm = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); int width = (int)(dm.widthPixels*0.5); dialog.getWindow().setLayout(width,ViewGroup.LayoutParams.WRAP_CONTENT); } } public static SelectMutliDialog newInstance( List args){ SelectMutliDialog sle = new SelectMutliDialog(); Bundle bundle = new Bundle(); bundle.putParcelableArrayList("content", (ArrayList) args); sle.setArguments(bundle); return sle; } /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getDialog().getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions. View decorView = getDialog().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } } @Override public void dismiss() { super.dismiss(); } }