2014-02-19 2 views
1

페이지 요소 크기를 늘리는 방법을 관리 할 수 ​​없습니다. 여기ViewPager에 팽창되어 추가 된 콘텐츠의 크기를 올바르게 얻는 방법은 무엇입니까?

viewPager = (ViewPager) findViewById(R.id.home_flipper); 
    GridIconsPageContent.MyPagerAdapter pagerAdapter = new GridIconsPageContent.MyPagerAdapter(); 
    viewPager.setAdapter(pagerAdapter); 
    ... 
    --called new thread for populate data-- 
    ... 
    LayoutInflater inflater = LayoutInflater.from(parent); 
    View page = inflater.inflate(R.layout.page_banner, null); 
    pagerAdapter.addPage(page); 
    pagerAdapter.notifyDataSetChanged(); 

    page.getWidth()//retutns 0 

page_banner 레이아웃 종류의 무언가 내 코드입니다 :

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width = "fill_parent" 
     android:layout_height = "fill_parent"> 
    <LinearLayout 
      android:id="@+id/bannersPage" 
      android:layout_height = "fill_parent" 
      android:layout_width = "fill_parent" 
      android:orientation = "vertical"> 
</FrameLayout> 

ViewPager 레이아웃이

<android.support.v4.view.ViewPager 
android:id="@+id/home_flipper" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_weight="1" 
android:background = "@android:color/white"/> 

입니다 내가 이해할 수없는 이유가 점점 크기를 해요 page.getWidth() 반환 0 ViewPager의 올바른 값을 반환합니다. Android 플랫폼이 처음인데 뭔가 놓친 것 같지만 그게 뭔지 알 수는 없습니다.

도와주세요.

감사합니다, 빅터

답변

1
ViewTreeObserver vto = page.getViewTreeObserver(); 
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() 
{ 
    public boolean onPreDraw() 
    { 
     int width = page.getMeasuredWidth(); 

     return true; 
    } 
}); 
관련 문제