我從XML膨脹一個RelativeLayout,然後嘗試以編程方式設置其佈局參數,並收到一個ClassCastException。以編程方式設置RelativeLayout佈局參數 - 拋出ClassCastException
代碼:
profileHeader = (RelativeLayout)mInflater.inflate(R.layout.user_profile_header, null);
profileHeader.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT));
拋出
E/AndroidRuntime(2963): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
E/AndroidRuntime(2963): at android.widget.ListView.measureScrapChild(ListView.java:1119)
E/AndroidRuntime(2963): at android.widget.ListView.measureHeightOfChildren(ListView.java:1202)
E/AndroidRuntime(2963): at android.widget.ListView.onMeasure(ListView.java:1111)
E/AndroidRuntime(2963): at android.view.View.measure(View.java:8222)
E/AndroidRuntime(2963): at android.view.ViewGroup.measureChildWithMargins(V
我已經看到了網絡中其他注意事項使用LinearLayout.LayoutParams嘗試但似乎沒有幫助。
如果你想知道爲什麼我這樣做,而不是僅僅將它設置在XML中,因爲我發現佈局「跳轉」到換行/換行時出現了一些奇怪現象。我在XML中將它設置爲fill_parent/fill_parent,並將視圖「縮小」滾動到看起來是換行/換行。它真的很奇怪。看着四維的android源代碼,我發現了一個評論,開發人員說同樣的事情:
「雖然佈局參數有些奇怪,但如果我們沒有明確地設置佈局以後填充/填充充氣,佈局跳轉到包裝/包裝佈局。「這聽起來就像我的問題,因此我試圖做相同的(通過代碼設置佈局),但在他的情況下,他使用LinearLayout,而我使用RelativeLayout。
我錯過了什麼?提前致謝。
感謝羅曼,這並不回答這個問題,讓我以編程方式設置RelativeLayout的PARAMS。不幸的是,我希望它能解決我阻止視圖從「跳轉」到滾動上的換行/換行的問題(它在滾動中明顯縮小,然後在發佈時恢復正常)。但它沒有解決這個問題。很奇怪。 – 2011-01-08 17:00:28