如何实现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
9761浏览 • 3回复 已解决
Fraction如何跳转 AbilitySlice
8594浏览 • 2回复 待解决
请问AbilitySliceFraction有什么区别
9924浏览 • 3回复 已解决
如何实现跳转到系统设置
1680浏览 • 1回复 待解决
如何实现Fraction懒加载功能?
7445浏览 • 1回复 待解决
如何跳转到WIFI列表页面?
353浏览 • 1回复 待解决
fraction 添加fraction 页面报错了
5027浏览 • 3回复 待解决
如何跳转到系统的日历应用?
430浏览 • 1回复 待解决
如何跳转到系统发送短信页面
2090浏览 • 1回复 待解决
如何从app跳转到系统相机
5447浏览 • 1回复 已解决
鸿蒙APP如何跳转到Android APP
15439浏览 • 3回复 待解决
鸿蒙应用如何跳转到Android应用?
4707浏览 • 1回复 待解决
HarmonyOS 如何跳转到应用设置页面?
302浏览 • 1回复 待解决
HarmonyOS如何跳转到发短信页面
512浏览 • 1回复 待解决
如何跳转到商店应用下载的位置?
285浏览 • 1回复 待解决
HarmonyOS pushNamedRoute 跳转到hsp问题
481浏览 • 1回复 待解决
ets怎么跳转到应用商店?
3584浏览 • 1回复 待解决