NativeScript ScrollView scrollToHorizontalOffset ไม่ทำงาน

ฉันมี ScrollView นี้:

<ScrollView orientation="horizontal" id='scroll'>
    <StackLayout orientation='horizontal' swipe='swipe'>
      <Image src="image1" />
      <Image src="image2" />
      <Image src="image3" />
      <Image src="image4" />
     </StackLayout>
</ScrollView>

และจส:

function swipe(args) {
    var scroll = args.view;
    scroll.scrollToHorizontalOffset(0, true);
}
exports.swipe = swipe;

ฉันคาดหวังว่าทุกครั้งที่ฉันปัดบน scrollView มันจะไปที่horizontalOffset ที่ฉันตั้งไว้ที่ scrollToHorizontalOffset แต่มันไม่ทำงาน


person Camille Lagrama    schedule 17.11.2015    source แหล่งที่มา


คำตอบ (1)


สาเหตุที่ scrollToHorizontalOffset ไม่ทำงานเป็นเพราะคุณพยายามเรียกใช้บน StackLayout เมื่อเป็นของ ScrollView มีสองสิ่งที่คุณสามารถทำได้:

  1. var scroll = args.view.parent - เนื่องจาก view เป็น StackLayout และคุณต้องการ ScrollView ซึ่งเป็นพาเรนต์

or

  1. แนบท่าทางโดยตรงกับ ScrollView - <ScrollView orientation="horizontal" id='scroll' swipe='swipe'>
person Neli Chakarova    schedule 17.11.2015
comment
ขอบคุณ. ฉันพยายามแนบท่าทางบน scrollview แต่ก็ยังไม่ได้ทำการ scrolltohorizontaloffset - person Camille Lagrama; 18.11.2015
comment
มันใช้งานได้เมื่อฉันลบบูลีนบน scrollToHorizontalOffset ตามเอกสารประกอบ มันเป็นสำหรับแอนิเมชั่น อืม ฉันจะเพิ่มแอนิเมชั่นลงในสิ่งนี้ได้อย่างไร อืม - person Camille Lagrama; 18.11.2015
comment
@ CamilleLagrama- ฉันแก้ไขคำตอบด้านบนเพื่อหลีกเลี่ยงความคลุมเครือ ฉันทดสอบทั้งสองกรณี ก่อนอื่น ฉันรวมรูปภาพให้เพียงพอเพื่อให้สามารถเลื่อนในแนวนอนภายในมุมมองได้ เมื่อฉันเลื่อน สมมติว่า ไปจนถึงจุดสิ้นสุดของมุมมองและฉันปัด - รูปภาพจะถูกเลื่อนกลับไปที่จุดเริ่มต้น ฉันใช้ {N} 1.4.3 และกำลังทดสอบบนเครื่องจำลอง iPhone คุณช่วยบอกฉันได้ไหมว่าคุณใช้เวอร์ชันและอุปกรณ์ใดอยู่? - person Neli Chakarova; 18.11.2015
comment
ใช่ มันทำงานได้โดยไม่ต้องใช้บูลีน แต่ฉันต้องการให้แอนิเมชั่นเลื่อนดู อืม.. ฉันใช้ {N} 1.4.3 และทดสอบบนโทรศัพท์ Android และโปรแกรมจำลองด้วย Android เวอร์ชัน 4.2.2 - person Camille Lagrama; 18.11.2015