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

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

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

HarmonyOS
2024-12-24 15:05:41
1263浏览
收藏 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 })
}
  • 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.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
分享
微博
QQ
微信
回复
2024-12-24 17:29:28


相关问题
如何区分折叠与非折叠手机
1008浏览 • 0回复 待解决
HarmonyOS 关于折叠手机的识别
710浏览 • 1回复 待解决
HarmonyOS 对象赋值一般使用什么方式
558浏览 • 1回复 待解决
HarmonyOS 如何监听手机
1235浏览 • 1回复 待解决
postgresql 连接池一般为多大?
5004浏览 • 1回复 待解决
HarmonyOS 区分手机,pad方法
504浏览 • 1回复 待解决
如何监听手机屏幕的灭
1451浏览 • 1回复 待解决
arkui适配问题,一般都是多少像素
252浏览 • 0回复 待解决
HarmonyOS 如何区分事件
874浏览 • 1回复 待解决
HarmonyOS 手机如何判断当前横竖状态
1365浏览 • 1回复 待解决
HarmonyOS手机,进程被杀
1915浏览 • 1回复 待解决
HarmonyOS 如何监听折叠展开折叠
899浏览 • 1回复 待解决