1、HarmonyOS 如何创建一个可以响应返回事件并且点击事件可以穿透的Window?
想创建一个自定义的View,可以展示Toast或者弹窗,位于所有页面的上方,当展示Toast的时候,所有的操作需要穿过Toast所在的页面;目前通过自定义Window,然后在Window内加载页面;但是使用Window创建的页面事件无法穿透;而且无法响应点击事件
可以使用以下方法实现:sub_windowClass.setWindowTouchable(false) 参考链接:developer.huawei.com/consumer/cn…
2、HarmonyOS 使用setPreferredOrientation接口进行转屏,但是屏幕还没转过来(状态栏都还没调整过来),接口就返回成功了?
setPreferredOrientation在旋转前就会调用callback,setPreferredOrientation只是下发了命令,下发完了就回调可参考文档:developer.huawei.com/consumer/cn…
旋转有个动画,动画耗时很长,无法动画做完才返回用户成功。执行成功时,动画是可打断的,上次旋转动画没做完如果下次旋转又来了,上次的旋转就会被打断。
3、HarmonyOS 如何检测手机在录屏或者在分享屏幕?
能否检测到手机自带的录屏功能正在录制屏幕,还有企业会议这种场景,把自己手机屏幕共享给别人,能否检测到
开启屏幕截屏、投屏、录屏状态变化的监听
参考链接:developer.huawei.com/consumer/cn…
4、HarmonyOS 在接口中如何主动打开一个界面/对话框?
目前不支持new 接口的写法,只能是通过实现类或者@State类型变量形式,具体显示和交互逻辑由调用者通过实现类的方式处理。参考demo
export interface Month {
month: string; // 具体年月
num: number; // 月份
days: number[]; // 该月日期
lunarDays: string[];// 农历日期
year:number; // 年份
}
class myMonth implements Month{
month: string='';
num: number=0;
days: number[]=[111];
lunarDays: string[]=['1'];
year: number=1;
}
@AppRouter({ name: "highlyloadedcomponentrender/MainPage" })
@Component
export struct MainPage {
@State mymount :Month= {
month: '',
num: 0,
days: [],
lunarDays: [],
year: 0
};
private month=new myMonth();
5、HarmonyOS 亮度不同步体验不好?
在应用内窗口的亮度设置之后从应用退到手机桌面 亮度会恢复到系统亮度 如果窗口设置的亮度和系统亮度相差太大的话就会有点突变的感觉
获取屏幕亮度:developer.huawei.com/consumer/cn…
退出页面时需要把屏幕设为之前的亮度,即为手机默认亮度,将数值设置为-1即为默认亮度
##鸿蒙核心技术##鸿蒙开发工具##DevEco Studio## ##社交##