상세 컨텐츠

본문 제목

안드로이드 AlertDialog 다이얼로그 클래스 크기, 이동 설정 관련

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

by AlrepondTech 2013. 7. 11. 19:35

본문

반응형

 

 

 

 

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

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

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

 

 

 

 

AlertDialog 을 클래스를 상속하고 크기와 위치를 정했는데 설정한대로 되지 않는 경우가 있다.

 

//AlertDialog 상속한 클래스.

public class CMsgPopup extends AlertDialog{

.......

    void initGUI()
    {
        View popupView = View.inflate(getContext(), R.layout.popup, null); //내가 설정한 팝업뷰 xml
        setView(popupView, 0, 0, 0, 0);

     }

}

 

//---------------------------------------------------------------------------------

// 코드부분1

 

            //

   CMakeRoomPopup pop = new CMakeRoomPopup(); 

   pop.show();

 

                width  = 100;

                //height는 무조건 설정대로 늘어나느것이 아니고 AlertDialog 안에 포함한 적합한 최대 크기만큼만 늘어난다.

                height = 200;        

                dlgX    = 100;

        dlgY    = 100;

 

                LayoutParams params = pop.getWindow().getAttributes();

params.x = dlgX;

params.y = dlgY;

params.width = width;

params.height = height;

pop.getWindow().setAttributes(params);

 

//---------------------------------------------------------------------------------

 

위처럼 구성을 하여 다이얼로그를 설정한 값으로 보여 주고자 하는데 원하는 대로 위치와, 크기가

설정한대로 맞지가 않다 왜그럴까.???

 

그것은 show부분에서 다이얼로그가 설정한대로 update 되기 때문이다.

 

//---------------------------------------------------------------------------------

// 코드부분2

 

            //

    CMakeRoomPopup pop = new CMakeRoomPopup(); 

    pop.show();

 

                width  = 100;

                height = 200;        

                dlgX    = 100;

        dlgY    = 100;

 

                LayoutParams params = pop.getWindow().getAttributes();

params.x = dlgX;

params.y = dlgY;

params.width = width;

                //height는 무조건 설정대로 늘어나느것이 아니고 AlertDialog 안에 포함한 적합한 최대 크기만큼만 늘어난다.

params.height = height;

pop.getWindow().setAttributes(params);

                pop.show();

               //또는

new Handler().postDelayed(new Runnable()

{

public void run() 

{

_me.show();

}

}, 200);

 

//---------------------------------------------------------------------------------

 

아래와 같이 pop.show();부분을 위아래 부분을 선언해 주면 크기, 위치 모두 설정한 대로 update 되어 원하는

다이얼로그를 설정할수 있다.

 

//height는 무조건 설정대로 늘어나느것이 아니고 AlertDialog 안에 포함한 적합한 최대 크기만큼 또는 xml에 정해진 설정만큼 늘어난다.

xml 설정과 위에 LayoutParams params설정을 잘 조절해 가며 다리얼로그를 만들어보자..

이부분도 명시하도록 하자. 

 

 

 

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

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

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

 

 

 

 

 

반응형


관련글 더보기

댓글 영역