如何获取Ability的根容器ComponentContainer,就像android那样:getWindow().getDecorView();

如题

Ability
根布局
decorView
2021-07-08 17:37:56
浏览
1
收藏 0
回答 3
待解决
回答 3
按赞同
/
按时间
XFJingGG
2
1

1,用代码创建根布局

DirectionalLayout componentContainer = new DirectionalLayout(this);
super.setUIContent(componentContainer);

2,给根布局设置id,然后使用

Component component = getWindow().getLayoutScatter().parse(int xmlId, ComponentContainer root, boolean attachToRoot);

或许还有更好的方法,等大神来回复。

分享
微博
QQ
微信
回复
2021-07-09 09:42:19
没用的喵叔
1

参考一下:https://gitee.com/openharmony-tpc/XPopup/blob/master/library/src/main/java/com/lxj/xpopup/util/ComponentUtil.java

 

    /**
     * 获取根容器
     *
     * @param component 根容器中的任意一个控件
     * @return 根容器
     */
    public static ComponentContainer getDecorView(Component component) {
        if (component != null) {
            ComponentParent componentParent = component.getComponentParent();
            if (componentParent == null) {
                return (ComponentContainer) component;
            } else {
                return getDecorView((Component) componentParent);
            }
        } else {
            return null;
        }
    }
分享
微博
QQ
微信
回复
2021-08-19 20:30:07
Oisnull

我也想知道,怎么样获取可视区域的宽高,像android中的getWindow().getDecorView().getWindowVisibleDisplayFrame,不知道有人知道没?

分享
微博
QQ
微信
回复1
2021-08-19 16:14:17
相关问题
请问如何获取到鸿蒙布局
1984浏览 • 1回复 待解决
getWindow().setBackground用法
1325浏览 • 1回复 待解决
请问如何去掉ability转场动画?
7178浏览 • 2回复 待解决
jenkins容器中使用docker报错问题
1324浏览 • 1回复 待解决
鸿蒙开发如何默认启动ability
2797浏览 • 3回复 待解决
ability主题有哪些可以设置?
10926浏览 • 3回复 待解决
关于如何获取时钟id问题
1987浏览 • 1回复 待解决
鸿蒙如何获取Element图片宽高
2932浏览 • 1回复 待解决
如何判断音频焦点获取和丢失?
1772浏览 • 1回复 待解决
鸿蒙OS如何获取当前手机号
11811浏览 • 1回复 待解决
鸿蒙如何获取资源文件种路径
9456浏览 • 3回复 待解决
真机调试鸿蒙,如何获取手机UDID
17299浏览 • 5回复 已解决