스마트기기개발관련/안드로이드 개발

안드로이드 이동키로 포커스를 이동할때 webview 에서 web 안의 포커스가 나와서 다음 뷰어의 포커스로 넘어 가지 않을때 그나마 나은 대처방법 관련

AlrepondTech 2013. 6. 18. 17:11
반응형

 

 

 

 

=================================

=================================

=================================

 

 

 

 

 

출처: http://202psj.tistory.com/554 (여기)

 

 

xml을 만들어 레이아웃 뷰어를 구성해도 되고 아래와 같이 LinearLayout 뷰어를 직접 

구성한다고 가상한다.

 

 

public class CCommentView extends LinearLayout 

{

   

       ..... //지정 변수들 생략

       ....

       .....

 

public CCommentView(Context context) {

super(context);

initGUI(context);

}

 

public CCommentView(Context context, AttributeSet attrs) {

super(context, attrs);

initGUI(context);

}

 

 

         void initGUI(Context context)

{

m_parent = context;

setOrientation(VERTICAL);

setBackgroundColor(0xFFEBEEF2);

setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 90));

 

_web = new WebView(m_parent);

        _web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

       _web.getSettings().setJavaScriptEnabled(true);

_web.setWebViewClient(new MyWebClient());

WebSettings set = _web.getSettings();

set.setJavaScriptEnabled(true);

set.setBuiltInZoomControls(true);

LayoutParams layout = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 0);

layout.weight = 1.0f;

_web.setLayoutParams(layout);

this.addView(_web);

          

 

//위의 WebView 즉 _web 에서 사이트를 부르고 이동키를 누를때 포커스가 다른 web을 나와 다른 뷰어로 가지 않는 경우가 있다. (이번 샘플과 같은경우는 아래로 포커스가 넘어가지 않을때) 그럴때는 아래와 같이 가상으로 임의스크롤뷰 하나를 바로

붙여주면(다른뷰어류도 사용가능)  그나마 포커스 이동이 움직이는 것을 확인할수 있다.

_webScr = new ScrollView(m_parent);

_webScr.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, 20));

addView(_webScr);

 

                 _web.loadUrl("사이트");

 

}

 

.....

..... //생략 api 들

....

}

 

=================================

=================================

=================================

 

 

반응형