如何实现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
5538浏览 • 3回复 已解决
Fraction如何跳转 AbilitySlice
5407浏览 • 2回复 待解决
如何实现Fraction懒加载功能?
2492浏览 • 1回复 待解决
请问AbilitySliceFraction有什么区别
6195浏览 • 3回复 已解决
鸿蒙APP如何跳转到Android APP
9586浏览 • 3回复 待解决
如何从app跳转到系统相机
1482浏览 • 1回复 已解决
鸿蒙应用如何跳转到Android应用?
44浏览 • 0回复 待解决
如何跳转到应用市场app下载页面?
2166浏览 • 1回复 待解决
服务卡片如何跳转到指定的页面呢?
1913浏览 • 1回复 待解决
如何实现图片点击跳转?
1747浏览 • 1回复 待解决
js能跳转到java写的页面吗
6351浏览 • 1回复 待解决
服务卡片如何通过java端跳转到js端?
740浏览 • 1回复 待解决
Page Ability 无法实现跳转
4320浏览 • 1回复 待解决
如何执行点击某个组件的命令?
765浏览 • 1回复 待解决
在一个页面怎么实现多个AbilitySlice
10007浏览 • 5回复 待解决
fraction 添加fraction 页面报错了
1898浏览 • 3回复 待解决