android - listview.addHeaderView()添加标题头出错

【字号: 日期:2022-11-19浏览:22作者:雯心

问题描述

我在写一个布局时,在listview中添加一个标题头时出错以下是我的代码

public Newspager(Context context,String url) {mInflate = View.inflate(context, R.layout.news_pager, null);ListView newspagerlv = (ListView) mInflate.findViewById(R.id.news_pager_lv);View header = View.inflate(context, R.layout.header, null);mAuto_roll = (AutoRolllayout) header.findViewById(R.id.auto_roll_out);//添加头到listviewnewspagerlv.addHeaderView(mAuto_roll);newspagerlv.setAdapter(mBaseAdapter);}

layout.news_pager布局很简单,就是一个线性布局包裹一个listview

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:orientation='vertical' android:layout_width='match_parent' android:layout_height='match_parent'> <ListViewandroid: android:layout_width='match_parent'android:layout_height='match_parent'> </ListView></LinearLayout>

R.layout.header作为头添加到listview中,以下是代码,里面的自定义控件是没有什么问题的

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:orientation='vertical' android:layout_width='match_parent' android:layout_height='wrap_content'> <helloas.siinax.com.lib_autorollayout.widget.AutoRolllayoutandroid:layout_width='match_parent'android:layout_height='160dp'android: /></LinearLayout>

现在就是将这个自定义控件作为头添加到listview中,就出错了,也就是 newspagerlv.addHeaderView(mAuto_roll);往listview中添加头时出错哪位神帮忙解决一下!

打印的logcat

FATAL EXCEPTION: main11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.widget.ListView.clearRecycledState(ListView.java:515)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.widget.ListView.resetList(ListView.java:501)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.widget.ListView.setAdapter(ListView.java:444)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at helloas.siinax.com.itcastnews.fragment.Newspager.<init>(Newspager.java:61)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at helloas.siinax.com.itcastnews.fragment.Newsfragment$2.instantiateItem(Newsfragment.java:156)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:870)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.ViewPager.populate(ViewPager.java:1020)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:552)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:514)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:946)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2910)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at helloas.siinax.com.itcastnews.fragment.Newsfragment$1.onSuccess(Newsfragment.java:104)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at com.lidroid.xutils.http.HttpHandler.onProgressUpdate(HttpHandler.java:218)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at com.lidroid.xutils.task.PriorityAsyncTask$InternalHandler.handleMessage(PriorityAsyncTask.java:385)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5041)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)11-12 14:00:45.116 2958-2958/? E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)

问题解答

回答1:

头部view不是header吗?为什么addHeaderView反倒用了mAuto_roll?应该是这样

newspagerlv.addHeaderView(header);

相关文章: