我在行UIWindow
-
channellist.addHeaderView(header);
我试过了两个 -
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
和
View header = View.inflate(getActivity(), R.layout.headerchannel, null);
但我得到了同样的例外。 我的HomeActivity确实有一个framelayout,这是我的项目所必需的。
答案 0 :(得分:1)
如果你看到:
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
你必须这样做:
header.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
前
channellist.addHeaderView(header);
答案 1 :(得分:0)
你应该使用
View header = inflater.inflate(R.layout.headerchannel, null);
答案 2 :(得分:0)
我认为在你的标题中你的根元素是RelativeLayout
。哪个是ViewGroup
而不是查看。所以用ViewGroup
充气它。
这就是它给你ClassCastException的原因。您正在尝试将ViewGroup转换为视图。
首先检查您的布局是ViewGroup还是View。 如果它的视图组你必须这样做..
ViewGroup header = LayoutInflater.from(getActivity()).inflate(R.layout.headerchannel, null);
或者它只是一个观点..
View header = LayoutInflater.from(getActivity()).inflate(R.layout.headerchannel, null);