출처: 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 을 그냥 넣어주면
간단히 해결됩니다, ^^
'IT_Programming > Android_Java' 카테고리의 다른 글
android:windowIsFloating 속성에 관하여 (0) | 2013.07.16 |
---|---|
Android 확장(추가) SDCard 경로 얻기. (0) | 2013.07.16 |
[Android] 루팅 여부 확인하기. (0) | 2013.07.16 |
마켓 호출시 android.content.ActivityNotFoundException 문제. (0) | 2013.07.16 |
루팅 여부 판별! Runtime.getRuntime().exec() 주의 (0) | 2013.07.16 |