Android] 웹뷰 스크롤 시 BottomNavigationView 숨기기

🎈 웹뷰 스크롤시 더 넓은 화면을 제공을 위해 BottomNavigationView 숨기면 좋지 않을까

방법 : 웹뷰 내에 스크롤 감지 하는 이벤트가 있기에 안에 Y부분이 변동되면 숨기게 로직을 작성하면 되지 않을까...라고생각을 했.다...

일단 메인엑티비티페이지에

   public void hideBottomNavigationView(boolean b) {
        if (b) {
            BottomNavigationView Bview = null;

            Bview.clearAnimation();

            Bview.animate().translationY(Bview.getHeight()).setDuration(300);

        } else {
            BottomNavigationView Bview = null;


            Bview.clearAnimation();


            Bview.animate().translationY(0).setDuration(300);

        }
    }

웹뷰 스크롤 리스턴 부분에 해당 코드를 추가 하였다.

    if (scrollY>200)
            {
                ((MainActivity)getActivity()).hideBottomNavigationView(true);
            }
            else
            {
                ((MainActivity)getActivity()).hideBottomNavigationView(false);
            }

😣 오류

https://stackoverflow.com/questions/31416568/could-someone-help-me-with-this-crash-report

@Override
public void onDestroyView() {
   super.onDestroyView();
   if (myWbView != null) {
       myWbView.destroy();
       webView=null; // remove webView, prevent chromium to crash
   }
}
  • destroy()를 하는 이유?
    Webview 를 xml layout으로 잡을 경우 메모리 누수가 발생할 수 있다. 그렇게 때문에 onDestroy 에서 webview 를 명시적으로 해제 시켜야 함.(혹은 xml이 아닌 코드상으로 WebView객체를 직접 만들어 써야함)

😣 오류
웹뷰 내에 Destroy 를 했지만 똑같은 오류가 계속 발생했다.

추가로 찾아보니

  webView.getSettings().setSaveFormData(false);  

옵션을 설정하면 된다는 얘기가 있어서 수정을 했다.

하지만 똑같은 오류가 계속되어 찾아서 해결한후 해결 법 추가 포스팅을 할예정이다.

왜안되는거야ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅠ

좋은 웹페이지 즐겨찾기