IT_Programming/Android_Java

Android JellyBean에서 사라진 setEmbeddedTitleBar 해결 방법

JJun ™ 2013. 7. 16. 07:37

 


 출처: http://lsit81.tistory.com/entry/Android-JellyBean에서-사라진-setEmbeddedTitleBar-해결-방법


 

 

Android 4.1 JellyBean 이 발표되어서 Gaxay-Nexus 에서 테스트 하던 중 내부적으로 정의되어 있는

함수 중에서  사라진 함수가 있어서 공유드립니다.

WebView의 웹 영역 위에 View 추가해서 

웹영역과 함께 스크롤 되게 하기 위해서(e.g-브라우저의 상단 주소 입력창) 다음의 코드를 사용합니다,


 

 Method method = WebView.class.getMethod("setEmbeddedTitleBar", new Class[] {View.class}); method.invoke(webView, titlebar); 


 

위와 같이 setEmbeddedTitleBar 라는 함수을 reflection 를 해서 사용합니다. 

그런데 이 함수가 Jelly Bean에서 사라졌습니다.


이런 불상사가 ..........?


 

1
2
3
4
5
6
7
8
9
10
public void setEmbeddedTitleBar(WebView webView, View titlebar) {
    try {  
        Method method = WebView.class.getMethod("setEmbeddedTitleBar", new Class[] {View.class});
        method.invoke(webView, titlebar);
    } catch (Exception ex) {
        webView.addView(titlebar,new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0));
        ex.printStackTrace();
    }
}



setEmbeddedTitleBar 이 reflection이 실패하면 위와 같이 추가할 Layout 을 그냥 넣어주면

간단히 해결됩니다, ^^