=================================
=================================
=================================
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설정을 잘 조절해 가며 다리얼로그를 만들어보자..
이부분도 명시하도록 하자.
=================================
=================================
=================================