如何实现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
3747浏览 • 3回复 已解决
Fraction如何跳转 AbilitySlice
3584浏览 • 2回复 待解决
如何实现Fraction懒加载功能?
760浏览 • 1回复 待解决
请问AbilitySliceFraction有什么区别
4841浏览 • 3回复 已解决
鸿蒙APP如何跳转到Android APP
5686浏览 • 3回复 待解决
如何跳转到应用市场app下载页面?
552浏览 • 1回复 待解决
js能跳转到java写的页面吗
4288浏览 • 1回复 待解决
Page Ability 无法实现跳转
1032浏览 • 1回复 待解决
在一个页面怎么实现多个AbilitySlice
7431浏览 • 5回复 待解决
fraction 添加fraction 页面报错了
1198浏览 • 3回复 待解决
请问JS FA可以跳转到JAVA FA并交互么
3535浏览 • 1回复 待解决
如何监听AbilitySlice的生命周期
501浏览 • 1回复 待解决
那在JS中怎么跳转到JAVA PAGE呢?
1384浏览 • 1回复 待解决
鸿蒙-如何打开跳转WLAN设置页面
3254浏览 • 1回复 待解决
鸿蒙-如何打开跳转GPS设置页面
7705浏览 • 1回复 待解决