2 qq 32360535 qq_32360535 于 2016.02.18 20:07 提问

关于listvi中加入viewpager 求大神看下代码

我是写了一个viewpager 有三个页面 然后在第一个页面中加入了一个listview 然后在listview中加入一个viewpager 但是每次运行都报错

java.lang.ClassCastException: android.support.v4.view.ViewPager$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams

下面是最外层viewpager的第一个页面中的代码

public class FragmenrOne extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.listview, container, false); //这个是自己写的listview
list = (List) view.findViewById(R.id.list);
View view2 = inflater.inflate(R.layout.otherfragment, container, false); //这个是viewpager
viewpager = (ViewPager) view2.findViewById(R.id.otherpager);
madapter=new OtherAdapter(getChildFragmentManager()); //viewpager的Adapter
viewpager.setAdapter(madapter);
list.addHeaderView(view2);

return view;
}

}

当我把listview的代码去掉 或者把viewpager的代码去掉 都可以正常显示出来 就是把viewpager加到listview中后就报错 这是什么原因啊 一直没法解决啊

5个回答

qq_32360535
qq_32360535   2016.02.19 16:13
已采纳

解决了
把View view2 = inflater.inflate(R.layout.otherfragment, container, false);
换成View headerVeiew = LayoutInflater.from(getActivity()).inflate(R.layout.otherfragment, null);
其它不变 就可以正常运行了 至于什么原因我也还不太清楚 知道的大神麻烦告诉一下!!

caozhy
caozhy   Ds   Rxr 2016.02.18 20:51
huangf321123
huangf321123   2016.02.19 09:53

list = (List) view.findViewById(R.id.list);这个有问题

qq_27578023
qq_27578023   2016.06.08 22:47

把View view2 = inflater.inflate(R.layout.otherfragment, container, false);
换成View headerVeiew = LayoutInflater.from(getActivity()).inflate(R.layout.otherfragment, null);

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.18 20:43

错误提示是二者之间的LayoutParams使用有问题,这里面看不出来

qq_32360535
qq_32360535 回复Mr_dsw: 可是我也没有用到layoutparams啊
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!