如何实现AbilitySlice跳转到某个Fraction?

一个AbilitySlice里的监听里怎么设置点击后跳转到一个fraction里呢?

Fraction
AbilitySlice
跳转
2021-09-06 11:38:57
浏览
1
收藏 1
回答 1
待解决
回答 1
按赞同
/
按时间
拓维信息Abin
3

Fraction相当于一个单独布局组件,具有生命周期管理。依附于AbilitySlice的生命周期,可以添加、移除、替换到AbilitySlice界面容器布局中。

你可以先封装一个BaseFractionAbilitySlice基类,把Fraction的常用操作进行一下封装;比如下面

public class BaseFractionAbilitySlice extends AbilitySlice {

    protected final FractionManager getFractionManager() {
        Ability ability = getAbility();
        if (ability instanceof FractionAbility) {
            FractionAbility fractionAbility = (FractionAbility) ability;
            return fractionAbility.getFractionManager();
        }
        return null;
    }

    protected final void addFraction(int layoutId, Fraction fraction){
        FractionManager fractionManager = getFractionManager();
        if(fractionManager != null){
            FractionScheduler fractionScheduler = fractionManager.startFractionScheduler();
            fractionScheduler.add(layoutId, fraction);
            fractionScheduler.submit();
        }
    }

    protected final void addFraction(int layoutId, Fraction fraction, String tag){
        FractionManager fractionManager = getFractionManager();
        if(fractionManager != null){
            FractionScheduler fractionScheduler = fractionManager.startFractionScheduler();
            fractionScheduler.add(layoutId, fraction, tag);
            fractionScheduler.submit();
        }
    }

    protected final void removeFraction(Fraction fraction){
        FractionManager fractionManager = getFractionManager();
        if(fractionManager != null){
            FractionScheduler fractionScheduler = fractionManager.startFractionScheduler();
            fractionScheduler.remove(fraction);
            fractionScheduler.submit();
        }
    }

    protected final void replaceFraction(int layoutId, Fraction fraction){
        FractionManager fractionManager = getFractionManager();
        if(fractionManager != null){
            FractionScheduler fractionScheduler = fractionManager.startFractionScheduler();
            fractionScheduler.replace(layoutId, fraction);
            fractionScheduler.submit();
        }
    }
}

之后跳转fraction,就是调用相应的添加(addFraction)、移除(removeFraction)和替换(replaceFraction)方法进行操作了。

layoutId  是slice布局中的一个ComponentContainer容器布局组件的ID值。

fraction  是你想要跳转的fraction实例对象。

分享
微博
QQ
微信
回复
2021-09-07 10:34:15
相关问题
如何实现Fraction跳转到AbilitySlice
7442浏览 • 3回复 已解决
Fraction如何跳转 AbilitySlice
6653浏览 • 2回复 待解决
请问AbilitySliceFraction有什么区别
8071浏览 • 3回复 已解决
如何实现Fraction懒加载功能?
5441浏览 • 1回复 待解决
鸿蒙APP如何跳转到Android APP
13299浏览 • 3回复 待解决
鸿蒙应用如何跳转到Android应用?
2483浏览 • 1回复 待解决
如何从app跳转到系统相机
3564浏览 • 1回复 已解决
如何跳转到共享包中的指定页面
167浏览 • 1回复 待解决
ets怎么跳转到应用商店?
1487浏览 • 1回复 待解决
如何跳转到应用市场app下载页面?
5064浏览 • 1回复 待解决
服务卡片如何跳转到指定的页面呢?
4047浏览 • 1回复 待解决
如何跳转到设置中的应用详情页面
225浏览 • 1回复 待解决
服务卡片如何通过java端跳转到js端?
2179浏览 • 1回复 待解决
如何实现图片点击跳转?
3486浏览 • 1回复 待解决
js能跳转到java写的页面吗
8419浏览 • 1回复 待解决
fraction 添加fraction 页面报错了
2967浏览 • 3回复 待解决