如何实现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();
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

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

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

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

分享
微博
QQ
微信
回复
2021-09-07 10:34:15


相关问题
如何实现Fraction跳转到AbilitySlice
10425浏览 • 3回复 已解决
Fraction如何跳转 AbilitySlice
9115浏览 • 2回复 待解决
请问AbilitySliceFraction有什么区别
10569浏览 • 3回复 已解决
如何实现跳转到系统设置
2528浏览 • 1回复 待解决
如何实现Fraction懒加载功能?
7796浏览 • 1回复 待解决
如何跳转到WIFI列表页面?
1128浏览 • 1回复 待解决
HarmonyOS 如何跳转到应用商店
522浏览 • 1回复 待解决
fraction 添加fraction 页面报错了
5405浏览 • 3回复 待解决
如何跳转到系统的日历应用?
1138浏览 • 1回复 待解决
如何跳转到系统发送短信页面
3012浏览 • 1回复 待解决
HarmonyOS如何跳转到发短信页面
1410浏览 • 1回复 待解决
HarmonyOS 如何跳转到应用设置页面?
1040浏览 • 1回复 待解决
鸿蒙APP如何跳转到Android APP
16108浏览 • 3回复 待解决
如何从app跳转到系统相机
6128浏览 • 1回复 已解决
鸿蒙应用如何跳转到Android应用?
5384浏览 • 1回复 待解决
如何跳转到商店应用下载的位置?
722浏览 • 1回复 待解决
HarmonyOS 如何跳转到系统发短信界面?
906浏览 • 1回复 待解决