imageSlider与XListView的联用

在xListView中能实现上拉加载和下拉刷新操作,其主要还是应用在list布局中,实现以上效果,而imageSlider则是实现图片的轮播效果,当两者结合起来时,能实现图片和数据都能同时进行刷新,也就是将imageSlider集成到XlistView中,怎样实现呢,看一下下面的代码就好了

XListView方法addHeaderView(View);使用此方法就能够实现集成:(主要代码如下我是使用的fragment类)

private VIew mView;

<span style="font-size:14px;"> /*
    * imageSlider控件加入
    * */
    public View getSliderLayoutView(String[] mImage, final String[] mString) {
        if (mView == null){
            mView = mInflater.inflate(R.layout.imageslider_layout, null);              //解析布局,当加载和刷新是不必重复加载
        }
        SliderLayout mSliderLayout = (SliderLayout) mView.findViewById(R.id.image_slider_layout);
        int length = mImage.length;
        for (int i = 0; i < length; i++) {
            TextSliderView sliderView = new TextSliderView(getContext());   //向SliderLayout中添加控件
            sliderView.image(mImage[i]);
            sliderView.description(mString[i]);
            final int finalI = i;
            sliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
                @Override
                public void onSliderClick(BaseSliderView slider) {
                    Toast.makeText(getActivity(),mString[finalI],Toast.LENGTH_SHORT).show();
                }
            });

            mSliderLayout.addSlider(sliderView);
        }
        mSliderLayout.setPresetIndicator(SliderLayout.PresetIndicators.Right_Bottom);  //将小圆点设置到右下方

        return mView;
    }</span>

<span style="font-size:14px;">  @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.fragment_news_list_content_layout, container, false);

        adapter = new NewsListAdapter(getContext());
        mContentList = (XListView) v.findViewById(R.id.news_content_listview);
        mProgress = (ProgressBar) v.findViewById(R.id.news_item_progress);
        mContentList.setAdapter(adapter);       //设置适配器
        mContentList.setPullLoadEnable(true);     //实现上拉加载
        mContentList.setPullRefreshEnable(true);   //实现下拉刷新
        mContentList.setEmptyView(mProgress);    //listview没有加载上时启动
        mContentList.setXListViewListener(this);    //注册上下拉刷新事件
        mContentList.setOnItemClickListener(this);   //注册item点击事件

        connetHttpGetStr(currentPage);   //联网取数据


        return v;
    }</span>
当到此处时,基本的工作就算做完了,接下来就调用方法就好了

mContentList.addHeaderView(mView);
这样虽然能够添加进去,但是又出问题了,在加载和刷新时imageSlider会出现乱加载的情况,因此在加载前最好进行判断

在获取数据,进行刷新时判断一下

<span style="font-size:14px;"> if (mView != null){
            Logs.e("111111111111");
            mContentList.removeHeaderView(mView);    //加载时移除view

        }</span>

同时也可以在addHeadView前做一个判断:(可避免每次都去重新设置数据)

<span style="font-size:14px;"> <pre name="code" class="java"><span style="white-space:pre">		</span>if (mView == null){
                    Logs.e("222222222222222");
                    mView = getSliderLayoutView(mImage, mString);  //自动轮播加载数据
                }</span>

		mContentList.addHeaderView(mView);    
 

这样就可以集成到你所想要的位置去了。

还有一种最暴力的方式:若是对XlistView代码熟悉也可以将imageSlider永久集成进去,此种方式我试了一下,是可以的,只要重新设置几个数据就好了,这儿就不做例子了

效果图:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值