[잊어버릴까봐 기록]
skydove library에서 제공하는 powermenu를 사용하다가 발생한 Error이다.
위 에러는 해당 Activity에서 powermenu를 show한 후, 엑티비티를 나갈 때 이 다이얼로그를 dismiss하지 않아서 생기는 현상이다. 따라서, Activity를 나갈 때, 명시적으로 dismiss하면, 위 에러를 해결할 수 있다.
PowermenuActivity.java
@Override
protected void onPause(){
super.onPause()
if(powerMenu != null && powermenu.isShowing()){
powerMenu.dismiss();
}
}
+) 추가로 이 PowerMenu가 RecyclerAdapter에서 구현이 되었을 경우 명시적으로 dismiss하는 방법이다.
우선, 해당 Adapter에 임의로 onDestroy() 메소드를 구현한다. (override한 메소드가 아니기 때문에 꼭 onDestroy라는 이름을 사용하지 않아도 된다.)
RecyclerAdapter.java
public void onDestroy(){
if(powerMenu != null) && powerMenu.isShowing()){
powerMenu.dismiss();
}
}
PowermenuActivity에 recyclerview가 있고, 이 recyclerview의 adapter가 RecyclerAdapter 파일을 통해 만들어진다.
다시 PowermenuActivity로 돌아가 아래와 같은 코드를 작성한다.
recyclerview가 있는 activity에서 해당 adapter에서 정의한 메소드를 호출함으로써 Adapter에서 구현된 Powermenu도 쉽게 dismiss할 수 있다.
PowermenuActivity.java
private RecyclerAdapter adapter;
@Override
protected void onPause(){
super.onPause()
if(powerMenu != null && powermenu.isShowing()){
powerMenu.dismiss();
}
if(adapter != null){
adapter.onDestroy();
}
}
'안드로이드' 카테고리의 다른 글
[Android] Disable tooltip Text in Bottom Navigation View (0) | 2020.12.03 |
---|---|
[Android] Bottom navigation view + FAB border customizing (0) | 2020.12.03 |
[Android] FAB image size 조정하기 (0) | 2020.12.02 |
[Android] 다이얼로그에서 Edittext softkeyboard 올라오면 스크롤 안 되는 현상 (0) | 2020.12.02 |
[Android] FCM foreground notification (0) | 2020.12.02 |