HarmonyOS Swiper指示器显示错误

属性上已经设置不显示指示器了,UI上还是展示了出来。

Swiper(this.controller){ 
  ForEach(this.titles, (subData: string, currentIndex: number) => { 
    MarketStockListItem({item: subData, currentIndex: currentIndex}) 
  }) 
} 
.onChange((index: number) => { 
  this.currentIndex = index; 
}) 
.width('100%') 
.displayCount(1, true) 
.index($$this.currentIndex) 
.autoPlay(false) 
.indicator(false) 
.cachedCount(6) 
.loop(false)
HarmonyOS
8天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

​可以使用indicator设置颜色透明,让它不显示。详细内容请参见:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-swiper-V5

.indicator(Indicator.dot() 
  .itemWidth(15) 
  .itemHeight(15) 
  .selectedItemWidth(15) 
  .selectedItemHeight(15) 
  .color('#00000000') 
  .selectedColor('#00000000'))

设置透明是替换方案,单独设置indicator也是可以生效的,参考demo:

// xxx.ets 
class MyDataSource implements IDataSource { 
  private list: number[] = [] 
 
  constructor(list: number[]) { 
    this.list = list 
  } 
 
  totalCount(): number { 
    return this.list.length 
  } 
 
  getData(index: number): number { 
    return this.list[index] 
  } 
 
  registerDataChangeListener(listener: DataChangeListener): void { 
  } 
 
  unregisterDataChangeListener() { 
  } 
} 
 
@Entry 
@Component 
struct SwiperExample { 
  private swiperController: SwiperController = new SwiperController() 
  private data: MyDataSource = new MyDataSource([]) 
 
  aboutToAppear(): void { 
    let list: number[] = [] 
    for (let i = 1; i <= 10; i++) { 
      list.push(i); 
    } 
    this.data = new MyDataSource(list) 
  } 
 
  build() { 
    Column({ space: 5 }) { 
      Swiper(this.swiperController) { 
        LazyForEach(this.data, (item: string) => { 
          Text(item.toString()) 
            .width('90%') 
            .height(160) 
            .backgroundColor(0xAFEEEE) 
            .textAlign(TextAlign.Center) 
            .fontSize(30) 
        }, (item: string) => item) 
      } 
      .cachedCount(2) 
      .index(1) 
      .autoPlay(true) 
      .interval(4000) 
      .loop(true) 
      .duration(1000) 
      .itemSpace(0) 
      // .indicator( // 设置圆点导航点样式 
      //   new DotIndicator() 
      //     .itemWidth(15) 
      //     .itemHeight(15) 
      //     .selectedItemWidth(15) 
      //     .selectedItemHeight(15) 
      //     .color(Color.Gray) 
      //     .selectedColor(Color.Blue)) 
      .indicator(false) 
      // .loop(false) 
      // .indicator(Indicator.dot() 
      //   .itemWidth(15) 
      //   .itemHeight(15) 
      //   .selectedItemWidth(15) 
      //   .selectedItemHeight(15) 
      //   .color('#00000000') 
      //   .selectedColor('#00000000')) 
      .displayArrow({ // 设置导航点箭头样式 
        showBackground: true, 
        isSidebarMiddle: true, 
        backgroundSize: 24, 
        backgroundColor: Color.White, 
        arrowSize: 18, 
        arrowColor: Color.Blue 
      }, false) 
      .curve(Curve.Linear) 
      .onChange((index: number) => { 
        console.info(index.toString()) 
      }) 
      .onGestureSwipe((index: number, extraInfo: SwiperAnimationEvent) => { 
        console.info("index: " + index) 
        console.info("current offset: " + extraInfo.currentOffset) 
      }) 
      .onAnimationStart((index: number, targetIndex: number, extraInfo: SwiperAnimationEvent) => { 
        console.info("index: " + index) 
        console.info("targetIndex: " + targetIndex) 
        console.info("current offset: " + extraInfo.currentOffset) 
        console.info("target offset: " + extraInfo.targetOffset) 
        console.info("velocity: " + extraInfo.velocity) 
      }) 
      .onAnimationEnd((index: number, extraInfo: SwiperAnimationEvent) => { 
        console.info("index: " + index) 
        console.info("current offset: " + extraInfo.currentOffset) 
      }) 
 
      Row({ space: 12 }) { 
        Button('showNext') 
          .onClick(() => { 
            this.swiperController.showNext() 
          }) 
        Button('showPrevious') 
          .onClick(() => { 
            this.swiperController.showPrevious() 
          }) 
      }.margin(5) 
    }.width('100%') 
    .margin({ top: 5 }) 
  } 
}
分享
微博
QQ
微信
回复
8天前
相关问题
HarmonyOS Swiper指示器
92浏览 • 0回复 待解决
如何设置swiper指示器显示
915浏览 • 1回复 待解决
HarmonyOS 关于Swiper指示器问题
287浏览 • 1回复 待解决
HarmonyOS 偶现app图标显示错误
58浏览 • 1回复 待解决
HarmonyOS Swiper循环问题
315浏览 • 1回复 待解决
HarmonyOS Swiper组建使用
417浏览 • 1回复 待解决
自选swiper能否在屏幕中显示一部分?
274浏览 • 1回复 待解决
如何让Swiper在一屏中显示两个Item?
1046浏览 • 1回复 待解决
运行flutter doctor -v后显示错误代码
990浏览 • 1回复 待解决
HarmonyOS swiper + LazyForEach使用问题
250浏览 • 1回复 待解决
使用DevEco Studio时Java预览提示错误
9718浏览 • 1回复 待解决