2012-09-08 37 views
-1

ViewPager不會將其高度包裹其內容。對於我的佈局,我需要動態設置高度,因爲它嵌套在其他佈局中。 因此,我創建了一個ScrollView作爲ViewPager的內容,並在Fragment的onCreate方法中檢查其高度,但ScrollView始終具有相同的大小。 如何包裝ViewPager的高度以適應其內容?ViewPager不會將高度包裹其內容

 final ScrollView sv = (ScrollView) v.findViewById(R.id.sv); 

     ViewTreeObserver vto = sv.getViewTreeObserver(); 
     vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 

       int height = sv.getMeasuredHeight(); 
       //always same height independent of content height 
       //need to resize ViewPager 



       ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) mPager.getLayoutParams(); 
       params.height = height; 
       mPager.setLayoutParams(params); 
      } 
     }); 
+0

這是一個http://stackoverflow.com/questions/8394681/android-i-am-unable-to-have-viewpager-wrap-content它有一個更合適的答案。 – 3c71

回答

-2

試了很多東西,終於搞定了。 -初始設置ViewPager爲一個很大的高度以適應所有可能的內容,而不是使其高度減小 - 用於嵌套2 LinearLayout以獲得正確的高度。 hth

+11

你可以發佈一些你的修補程序的示例代碼? – MOST2K2

+0

ViewGroup.LayoutParams params =(ViewGroup.LayoutParams)mPager.getLayoutParams(); params.height = height; mPager.setLayoutParams(param.heigt); – user1324936