Android_ListView头部添加ViewPager,

来源:互联网 发布:汉字的起源知乎 编辑:程序博客网 时间:2024/05/18 01:22

建议使用

View view = LayoutInflater.from(getContext()).inflate(R.layout.header, null);   viewPager= (ViewPager) view.findViewById(R.id.viewPager);
  //为viewpager设置adapter        viewPager.setAdapter(myPagerAdapter);//        将tablayout 和 viewpager绑定        tabLayout.setupWithViewPager(vp_home_);//        将viewpager 添加到 listview 的头布局        listView.addHeaderView(view);

这种 布局填充的方式添加到头布局。


 下面一种方式 不知道 为什么 会报强转错误, 有大神可以帮忙看一下吗?谢谢了 。

 Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to -> android.widget.AbsListView$LayoutParams


代码:

   @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);//        找到布局文件中的空间        vp_home_ = $(R.id.vp_home_);        tl_home = $(R.id.tl_home);        ib_home_add_tab = $(R.id.ib_home_add_tab);        lv_home_ = $(R.id.lv_home_);//        初始化Adapter        myPagerAdapter = new MyPagerAdapter(getChildFragmentManager());//        为viewpager设置adapter        vp_home_.setAdapter(myPagerAdapter);//        将tablayout 和 viewpager绑定        tl_home.setupWithViewPager(vp_home_);//        将viewpager 添加到 listview 的头布局        lv_home_.addHeaderView(vp_home_);//        下一行报错        lv_home_.setAdapter(new MyLvAdapter());
布局::::
 <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content">        <android.support.v4.view.ViewPager            android:id="@+id/vp_home_"            android:layout_width="match_parent"            android:layout_height="200dp">        </android.support.v4.view.ViewPager>    </LinearLayout>    <ListView        android:id="@+id/lv_home_"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:divider="@null">    </ListView></LinearLayout>

0 1
原创粉丝点击