index.ets 2.8 KB
Newer Older
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
/**
 * Copyright (c) 2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import router from '@system.router';
import prompt from '@ohos.prompt';

@Entry
@Component
struct ScrollExample {
  scroller: Scroller = new Scroller()
  private arr: number[] = [1,2,3,4]

  build() {
    Stack({ alignContent: Alignment.TopStart }) {
      Scroll(this.scroller) {
        Column() {
          Button() {
            Text('next page')
              .fontSize(25)
              .fontWeight(FontWeight.Bold)
          }.key('my-key')
          .type(ButtonType.Capsule)
          .margin({ top: 20 })
          .onClick(() => {
            router.push({ uri: 'pages/second' })
          })
          .gesture(
            LongPressGesture({repeat:false})
              .onAction((event: GestureEvent)=>{
                router.push({ uri: 'pages/fourth' })
            })
          )
          Text('Click twice')
          .margin({top:20})
            .gesture(
              TapGesture({ count: 2 })
               .onAction(() => {
                 router.push({ uri: 'pages/third' })
                 })
            )
          Checkbox({name:'hi'})
          .size({width:30,height:30})
          TextInput({ placeholder: 'welcome', text: 'Hello World'})
          .type(InputType.Normal)
          .width(300)
          .height(50)
          .fontSize(40)
          .enabled(true)
          .margin({ top: 20 })
          ForEach(this.arr, (item) => {
            Text(item.toString())
              .width('100%').height('30%').backgroundColor(0xFFFFFF)
              .borderRadius(75).fontSize(80).textAlign(TextAlign.Center)
              .margin({ top: 10 })
          }, item => item)
          Button() {
            Text('bottom')
              .fontSize(25)
              .fontWeight(FontWeight.Bold)
          }.type(ButtonType.Capsule)
          .margin({
            top: 20, left: 150
          })
          .onClick(() => {
            router.push({ uri: 'pages/second' })
          })
        }.width('100%')
      }
      .scrollable(ScrollDirection.Vertical).scrollBar(BarState.On)
      .scrollBarColor(Color.Gray).scrollBarWidth(30)
      .onScroll((xOffset: number, yOffset: number) => {
        console.info(xOffset + ' ' + yOffset)
      })
    }.width('100%').height('100%').backgroundColor(0xDCDCDC)
  }
}