HarmonyOS 组件选择问题

以下操作是否有推荐的组件,点击设置、显示浮层,尝试过bindSheet,但弹出方向只能在底端,因为横屏状态无法达到效果。

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

目前暂无相关组件能够满足要求,可尝试使用stack然后通过添加动画实现,参考示例如下:

// xxx.ets
import { window } from '@kit.ArkUI'
import { BusinessError } from '@kit.BasicServicesKit'

@Entry
@Component
struct ScrollExample {
  scroller: Scroller = new Scroller()
  @State testRowStr: string = '50%'
  @State widthDia: string = '50%'

  aboutToAppear(): void {
    let orientation = window.Orientation.LANDSCAPE
    this.setScreenOrientation(orientation)
  }

  aboutToDisappear(): void {
    let orientation = window.Orientation.PORTRAIT
    this.setScreenOrientation(orientation)
  }

  setScreenOrientation(orientation: window.Orientation) {
    let windowClass: window.Window | undefined = undefined;
    try {
      let promise = window.getLastWindow(getContext())
      promise.then((data) => {
        windowClass = data
        windowClass.setPreferredOrientation(orientation)
      }).catch((err: BusinessError) => {
        console.error('getLastWindow error')
      })
    } catch (e) {
      console.error('setScreenOrientation error')
    }
  }

  build() {
    Column() {
      Stack() {
        Column() {
          Text('关闭')
            .fontSize(20)
            .onClick(() => {
              this.testRowStr = '100%'
              this.widthDia = '50%'
            })
          Text('打开')
            .fontSize(20)
            .onClick(() => {
              this.testRowStr = '50%'
              this.widthDia = '50%'
            })
        }.width('100%').height('100%').backgroundColor(Color.Orange)

        Column() {

        }
        .width('50%')
        .height('100%')
        .backgroundColor(Color.Blue)
        .position({ x: this.testRowStr, y: 0 })
        .transition(TransitionEffect.OPACITY.animation({ duration: 500, curve: Curve.Ease }).combine(
          TransitionEffect.translate({ x: this.widthDia })
        ))
      }
      .backgroundColor(Color.Gray)
    }.width('100%').height('100%').backgroundColor(0xDCDCDC)
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS 列表选择问题
155浏览 • 1回复 待解决
HarmonyOS photoAccessHelper选择图片问题
27浏览 • 1回复 待解决
HarmonyOS DocumentViewPicker选择文件问题
82浏览 • 1回复 待解决
HarmonyOS 相册相机选择组件
239浏览 • 1回复 待解决
HarmonyOS 提供城市拼音选择组件
476浏览 • 1回复 待解决
如何选择Navigation 组件与 Tabs 组件
2715浏览 • 1回复 待解决
HarmonyOS checkbox复选框使用选择问题
30浏览 • 1回复 待解决
HarmonyOS图片选择器相关的问题
696浏览 • 1回复 待解决
HarmonyOS picker选择器的数据源问题
196浏览 • 1回复 待解决
数据中台数据库选择问题
2220浏览 • 1回复 待解决
HarmonyOS Tabs组件组件问题
619浏览 • 1回复 待解决
HarmonyOS 类型选择
122浏览 • 1回复 待解决