2011-08-04 10 views
3

좋아, 이제 Android 프로그래머가 최소한 며칠 후에 할 수있는만큼 많은 것을 작성하기 시작했습니다. 지금까지 배운 것을 자랑스럽게 생각합니다.PopupWindow 너비와 높이

어쨌든 주 활동에 대한 로그인을 강요하고 싶습니다. SharedPrefernece를 가져 와서 해당 정보가 null인지 확인하고 "로그인"필드와 옵션을 보유하는 PopupWindow를 얻는 것보다 이것을 수행합니다.

이 PopupWindow는 내부에 플리퍼가 있으며, 특정 옵션을 선택하면 잘 작동합니다.

내가이 PopupWindow를 표시하는 문제는 단지 내가 PopupWindow.setAtLocation() 이제

를 설정할 때와 같은 컨텐츠 (wrap_content)의 크기로 데, 여기에 내가 얻을 일을하려고 한 것입니다 팝업의 크기 - 여기에 몇 번 언급 한 바와 같이 : 팝업 팝업, PW의 실제 레이아웃의 팽창기 것을

popup.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); 
final PopupWindow pw = new PopupWindow(popup,popup.getMeasuredHeight(),popup.getMeasuredWidth(), true); 

참고 실제 PopupWindow 개체입니다.

지금, 난 그냥 팝업 윈도우의 실제 크기 (그래서 페이지에 걸쳐 늘어나는 것과하지 않는 그런 식으로하고 싶지 않고, 단지 중앙에 일반 팝업해야처럼 보이는. 또한

ViewFlipper 함께. 그것은 페이지를 전환 할 때 팝업 크기를 업데이트하려면 (그래서 페이지 크기를 위아래로 페이지 당합니다)이 작업을 할 수있는 방법이 있나요? 나는 pw.update() 그러나 그것은 매우 잘 작동하지 않았다.

답변

1

을 당신은 당신이 당신의 PopupWindow에 추가 할 예정 실제 레이아웃을 측정하고자합니다. 난 그냥 PopupWindow 내부 ListView 퍼팅의 유사한 문제를 해결했다. T를 그는 속임수 ViewonMeasure()을 무시합니다. 그 때마다 ViewFlipper가 변하는 것을 기억하십시오.

@Override 
public void onMeasure(int x, int y) 
{ 
    super.onMeasure(x, y); 

    if(x == View.MeasureSpec.UNSPECIFIED && y == View.MeasureSpec.UNSPECIFIED) 
    { 
     //measure your child views here 

     //tell the view it has been measured 
     this.setMeasuredDimension(width, height); 
    } 
} 
관련 문제