CustomDialog - 다기능 공통 사용자 정의 Dialog

6411 단어

CustomDialog


다기능 Dialog의 범용 지원 기능
dialog.gif

의지하다

compile 'com.github.SiberiaDante:CustomDialog:v1.0.1'

설명


CustomDialog:


3단계로 간단히 구현할 수 있는 다기능 Dialog의 범용 지원 기능
  • 사용자 정의CustomDialog 레이아웃과 클릭 이벤트를 설정할 컨트롤의 id만 전송하면 됩니다
  •     CustomDialog customDialog=new CustomDialog(this,
                                        R.layout.dialog_layout,
                                        new int[]{R.id.dialog_sure});
    
  • CustomDialog 버튼의 수신
  •     customDialog.setOnDialogItemClickListener(new CustomDialog.OnCustomDialogItemClickListener() {
                @Override
                public void OnCustomDialogItemClick(CustomDialog dialog, View view) {
                    Toast.makeText(MainActivity.this, " ", Toast.LENGTH_LONG).show();
                }
            });
    
  • CustomDialog 표시 및 숨기기customDialog.show();customDialog.dismiss();
  • CustomDialog의 표시 위치, 애니메이션, 제어 단추를 누르면 CustomDialog의 표시를 취소할지 여부를 변경할 수 있습니다. 구조를 사용하십시오

  • CustomDialog 애니메이션 변경
  •     /**
         * @param context
         * @param layoutResID     
         * @param listenedItems   id
         * @param animationResId dialog  , , 0
         */
        public CustomDialog(Context context, int layoutResID, int[] listenedItems, int animationResId) {
            super(context, R.style.Custom_Dialog_Style); //dialog 
            this.context = context;
            this.mLayoutResId = layoutResID;
            this.mListenedItems = listenedItems;
            this.mAnimationResId = animationResId;
        }
    
  • CustomDialog를 클릭한 후 CustomDialog가 자동으로 표시되지 않는지 제어
  •     /**
         * @param context
         * @param layoutResID    
         * @param listenedItems  id
         * @param isDismiss      dialog {@code true}  {@code false}  
         */
        public CustomDialog(Context context, int layoutResID, int[] listenedItems, boolean isDismiss) {
            super(context, R.style.Custom_Dialog_Style); //dialog 
            this.context = context;
            this.mLayoutResId = layoutResID;
            this.mListenedItems = listenedItems;
            this.mIsDismiss = isDismiss;
        }
    
  • CustomDialog의 표시 위치를 변경하고CustomDialog를 눌렀을 때 자동으로 CustomDialog의 표시 취소 여부를 제어할 수 있습니다
  •     /**
         * @param context
         * @param layoutResID    
         * @param listenedItems  id
         * @param isDismiss      dialog {@code true}  {@code false}  
         * @param position      dialog  , CENTER, 0
         */
        public CustomDialog(Context context, int layoutResID, int[] listenedItems, boolean isDismiss, int position) {
            super(context, R.style.Custom_Dialog_Style); //dialog 
            this.context = context;
            this.mLayoutResId = layoutResID;
            this.mListenedItems = listenedItems;
            this.mPosition = position;
        }
    
  • CustomDialog 애니메이션, 표시 위치, 버튼 클릭으로 CustomDialog 표시 취소 여부
  • 를 동시에 변경할 수 있습니다.
        /**
         *  
         *
         * @param context
         * @param layoutResID     
         * @param listenedItems   id
         * @param animationResId dialog  , , 0
         * @param isDismiss       dialog {@code true}  {@code false}  
         * @param position       dialog  , CENTER, 0
         */
        public CustomDialog(Context context, int layoutResID, int[] listenedItems, int animationResId, boolean isDismiss, int position) {
            super(context, R.style.Custom_Dialog_Style); //dialog 
            this.context = context;
            this.mLayoutResId = layoutResID;
            this.mListenedItems = listenedItems;
            this.mAnimationResId = animationResId;
            this.mIsDismiss = isDismiss;
            this.mPosition = position;
        }
    

    기타 공통 Dialog

  • EnsureDialog: Dialog 확인
  • EnsureDialog ensureDialog = new EnsureDialog(this).builder()
                    .setGravity(Gravity.CENTER)// , 
                    .setTitle(" ", getResources().getColor(R.color.black))// , 
                    .setCancelable(false)
                    .setSubTitle(" ")
                    .setIncon(R.mipmap.tip_icon)// , 
                    .setNegativeButton(" ", new View.OnClickListener() {// 
                        @Override
                        public void onClick(View view) {
    
                        }
                    })
                    .setPositiveButton(" ", getResources().getColor(R.color.red), new View.OnClickListener() {// 
                        @Override
                        public void onClick(View view) {
                            ensureDialog.dismiss();
    
                        }
                    });
            ensureDialog.show();
    
  • BottomPopupWindow: IOS 하단 팝업창 Dialog
  • 모방
    new BottomPopupWindow(this).builder()
                    .setTitle(" ").setCancelable(false).setCanceled(true)
                    .addSheetItem(" ", BottomPopupWindow.SheetItemColor.Blue, new BottomPopupWindow.OnSheetItemClickListener() {
                        @Override
                        public void onClick(int which) {
                        }
                    })
                    ...// addSheetItem item
                    .addSheetItem(" ", BottomPopupWindow.SheetItemColor.Blue, new BottomPopupWindow.OnSheetItemClickListener() {
                        @Override
                        public void onClick(int which) {
                        }
                    }).show();
    
  • EditDialog: EditText를 사용하여 Dialog 확인:
  •   final EditDialog dialog = new EditDialog(this).builder();
            dialog.setTitle(" Dialog");
            dialog.setCancelable(false);
            dialog.setNegativeButton(" ", new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                }
            });
            dialog.setPositiveButton(" ", new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    final String msg = dialog.getMsg();
                    Toast.makeText(MainActivity.this, " :" + msg, Toast.LENGTH_LONG).show();
                    dialog.dismiss();
                }
            });
            dialog.show();
    

    쌓기가 쉽지 않습니다. star 지원, 대단히 감사합니다.


    TitleLayout-제목 표시줄을 쉽게 실현할 수 있는


    안드로이드 개발 상비 도구 모음 중


    블로그 가든:http://www.cnblogs.com/shen-hua/


    Github 주소:https://github.com/SiberiaDante/CustomDialog

    좋은 웹페이지 즐겨찾기