我正在从XML中膨胀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 中设置它,那是因为我看到了一些奇怪的东西,布局会“跳”到wrap / wrap。我已经在XML中将其设置为fill_parent/fill_parent,在滚动视图时视图“缩小”到看起来像wrap/wrap。它真的很奇怪。查看foursquared android源代码后,我发现开发人员在一个评论中说了同样的事情:
“虽然布局参数存在一些奇怪的问题。如果我们不在填充后明确将布局设置为填充/填充,则布局会跳到wrap / wrap布局。”(FriendsActivity.java:258)
这听起来就像我的问题,因此我也想尝试这样做(通过代码设置布局),但他使用的是LinearLayout,而我使用的是RelativeLayout。
我错过了什么?提前致谢。