DialogFragment는 dismiss를 호출한 후에 getdialog를 호출합니다.show () 오류 보고

최근에 가짜 알리페이 결제 밑부분의 액자에 대한 수요를 실현하려면 다이어로그를 사용해야 한다. 인터넷에서 간단하게 실현된 다이어로그 프레임워크를 참고했다.이거 처음 써봐요. 예전에는 다이어로그였어요.dialogfragment에 대해서는 소개하지 않겠습니다. 인터넷에 글이 많습니다.제품이 내게 준 수요에 따라 나는 많은 것을 수정해야 한다.dialogfragment 사이의 단추를 누르면 새로운 dialog가 팝업됩니다. dialogfragment가 꺼지고 새 dialog가 닫히면 켜지지만 상태 데이터가 이전인지 확인하십시오.생각났어요. 디스미스부터 하고 쇼(show)까지 했는데 쇼(show)할 때 바늘이 비었어요. 어쩔 수 없어요. 인터넷에 많이 찾아봤는데 관련 게 없어요.dismiss 때 dialogfragment가 제거되었습니다. 이 안에서 show () 를 사용하면 무효입니다. dialog와 다르다.해결: 다이어로그 안의 하이드 () 방법을 생각해냈어요. 숨겨요.dialog 보기.hide()에 대한 설명: Hide the dialog, but do not dismiss it.다이어로그 보기만 숨기고 보기를 옮기지 않았다는 뜻이다.Hide의 원본 코드를 보면 다음과 같습니다./** Hide the dialog, but do not dismiss it. */public void hide() { if (mDecor != null) { mDecor.setVisibility(View.GONE); } } 그냥 보기를 GONE으로 설정한 거예요.dismiss() 메서드 보기: void dismissDialog () {if(mDecor==null||!mShowing) {return;if (mWindow.isDestroyed()) { Log.e(TAG, “Tried to dismissDialog() but the Dialog’s window was already destroyed!”); return; } try { mWindowManager.removeView(mDecor); } finally { if (mActionMode != null) { mActionMode.finish(); } mDecor = null; mWindow.closeAllPanels(); onStop(); mShowing = false;
        sendDismissMessage();
    }
}

네. 이 보기를 모두 끝내고 onStop () 을 호출합니다.보통 우리는 dismiss를 호출하는데, hide는 잠깐 사라져서 사용된 것 같아요. 수요를 실현했으니 기록해 주세요.

좋은 웹페이지 즐겨찾기