HarmonyOS 如何区分一般手机和折叠屏手机?

如何区分一般手机和折叠屏手机?

还有如何区分折叠屏手机的展开状态和折叠状态?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

API参考如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5#displayonfoldstatuschange10

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5#displayisfoldable10

import { display } from '@kit.ArkUI';

@Entry({ routeName: 'FoldPage' })
@Component
export struct FoldPage {
  @State isFoldable: boolean = false;
  @State FoldStatus: number = display.FoldStatus.FOLD_STATUS_UNKNOWN;
  private onFoldStateChange: Callback<display.FoldStatus> = (data: display.FoldStatus) => {
    this.FoldStatus = data;
    // 在这里处理折叠屏的监听
    switch (this.FoldStatus) {
      case display.FoldStatus.FOLD_STATUS_EXPANDED:
        console.info('FoldPage::onFoldStateChange, 当前处于展开态');
        break;
      case display.FoldStatus.FOLD_STATUS_FOLDED:
        console.info('FoldPage::onFoldStateChange, 当前处于折叠态');
        break;
      case display.FoldStatus.FOLD_STATUS_HALF_FOLDED:
        console.info('FoldPage::onFoldStateChange, 当前处于半折叠态');
        break;
      default:
        console.info('FoldPage::onFoldStateChange, 当前处于未知态');
        break;
    }
  };

  aboutToAppear(): void {
    console.debug('FoldPage::aboutToAppear')
  }

  onPageShow(): void {
    console.debug('FoldPage::onPageShow')
    this.isFoldable = display.isFoldable();
    if (this.isFoldable) {
      this.FoldStatus = display.getFoldStatus();
      display.on('foldStatusChange', this.onFoldStateChange);
    }
  }

  onPageHide(): void {
    console.debug('FoldPage::onPageHide')
    if (this.isFoldable) {
      display.off('foldStatusChange', this.onFoldStateChange);
    }
  }

  aboutToDisappear(): void {
    console.debug('FoldPage::aboutToDisappear')
  }

  build() {
    Navigation() {
      Column() {
        Text('当前设备是否为折叠屏:' + this.isFoldable).TextStyle()
        Text('当前折叠屏的状态:' + this.FoldStatus.toString()).TextStyle()

      }
    }
    .width('100%')
    .mode(NavigationMode.Stack)
    .title('har包折叠屏测试') // 设置标题文字
  }
}

@Extend(Text)
function TextStyle() {
  .fontSize(28).margin({ top: 26 })
}
分享
微博
QQ
微信
回复
1天前
相关问题
如何区分折叠与非折叠手机
369浏览 • 0回复 待解决
HarmonyOS 如何监听手机
116浏览 • 1回复 待解决
postgresql 连接池一般为多大?
4508浏览 • 1回复 待解决
HarmonyOS 区分手机,pad方法
43浏览 • 1回复 待解决
如何监听手机屏幕的灭
680浏览 • 1回复 待解决
HarmonyOS 如何区分事件
81浏览 • 1回复 待解决
HarmonyOS手机,进程被杀
891浏览 • 1回复 待解决
HarmonyOS 如何监听折叠展开折叠
108浏览 • 1回复 待解决
如何监听手机屏幕的横竖切换?
455浏览 • 1回复 待解决