美文网首页
鸿蒙第8课轮播图滑动组件(2)

鸿蒙第8课轮播图滑动组件(2)

作者: 游私塾白书生 | 来源:发表于2022-06-01 17:28 被阅读0次

1.页面上先写上一个样板

2.再创立个模板页面

3.创建一个工具包,在工具包内在创建一个轮播图的工具类

//轮播的对象类

public class LunBoTu  {

//创建图片

    private int imgge;

//空参

    public LunBoTu() {

}

//有参

    public LunBoTu(int imgge) {

this.imgge = imgge;

    }

//get  和set

    public int getImgge() {

return imgge;

    }

public void setImgge(int imgge) {

this.imgge = imgge;

    }

}

4.在 适配器 工具包新建立个适配器的类

//适配器类

public class LunBoTuProviderextends PageSliderProvider {

//      引出轮播图对象  所有轮播图

        private ArrayListlist;

//        当前页面  - 页面的类型必须是AbilitySlice

        private AbilitySliceslice;

            //通过有参构造让这上面两个参数赋值

            //所以这边也是AbilitySlice的类型

    public LunBoTuProvider(ArrayList list, AbilitySlice slice) {

this.list = list;

        this.slice = slice;

    }

@Override

    public int getCount() {

return list.size();

    }

@Override

    public ObjectcreatePageInContainer(ComponentContainer componentContainer, int i) {

//        获取每个数据

        LunBoTu lunbo=list.get(i);

        //获取容器对象 数据展示的位置

        DirectionalLayout dl=(DirectionalLayout) LayoutScatter.getInstance(slice)

.parse(ResourceTable.Layout_swper,null,false);

//        在轮播种招到这个图片

        Image img=(Image) dl.findComponentById(ResourceTable.Id_lunbo);

        img.setPixelMap(lunbo.getImgge());

        componentContainer.addComponent(dl);

//        返回出来

        return dl;

    }

@Override

    public void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) {

componentContainer.removeComponent((Component) o);

    }

@Override

    public boolean isPageMatchToObject(Component component, Object o) {

return false;

    }

}

5.在主页面里写运动加载的方法(要写在外部类里面)

// ———————————————————————————————— 运动模块加载的方法————————————————

    private  void initSport(){

//获取轮播图

        PageSlider ps=(PageSlider) findComponentById(ResourceTable.Id_lunbops);

        // 轮播图的对象集合

        ArrayList list=new ArrayList<>();

//        插入轮播图的照片

        list.add(new LunBoTu(ResourceTable.Media_image02));

        list.add(new LunBoTu(ResourceTable.Media_image03));

//                  轮播图的适配器

        LunBoTuProvider lunBoTuProvider=new LunBoTuProvider(list,this);

        //现在这边的this报错了,this表示本类

        //是因为这个方法 你写在监听的匿名内部类里面了,所以this指向的不是页面 而是监听了,抽出来写在外面就好了。

//                适配器和pagProvider相关来奶

//        适配器和  PageProvider 相关联

        ps.setProvider(lunBoTuProvider);

    }

6.在滑动页面里判断轮播图的方法引入


相关文章

网友评论

      本文标题:鸿蒙第8课轮播图滑动组件(2)

      本文链接:https://www.haomeiwen.com/subject/mguoprtx.html