簡體   English   中英

單子滾動視圖不適用於手勢檢測器

[英]Single Child Scroll View Doesn't work with Gesture Detector

我創建了一個SingleChildScrollView 手勢檢測器有一個父容器(紅色)和一個子容器(藍色)。 滾動視圖適用於父級,但不適用於子級。 我該怎么辦? 謝謝您的幫助。 這是代碼。

body: SingleChildScrollView(
          child: Column(
            children: [
              Container(
                color: Colors.redAccent[200],
                height: 1000.0,
                width: 500.0,
                alignment: Alignment.center,
              ),

              GestureDetector(
                onVerticalDragUpdate: (DragUpdateDetails details) {
                  print("Start");
                  print(details.localPosition);
                },
                child: Container(
                  color: Colors.blueAccent[200],
                  height: 10000.0,
                  width: 500.0,
                  alignment: Alignment.center,
                ),

              )
            ],
          ),
        )

嘗試像這樣用 SingleChildScrollView 包裝 GestureDetector。

body: SingleChildScrollView(
  child: Column(
    children: [
      Container(
        color: Colors.redAccent[200],
        height: 1000.0,
        width: 500.0,
        alignment: Alignment.center,
      ),
      SingleChildScrollView(
        child: GestureDetector(
          onVerticalDragUpdate: (DragUpdateDetails details) {
            print("Start");
            print(details.localPosition);
          },
          child: Container(
            color: Colors.blueAccent[200],
            height: 10000.0,
            width: 500.0,
            alignment: Alignment.center,
          ),
        ),
      ),
    ],
  ),
);

onVerticalDragUpdate正在阻止SingleChildScrollView滾動,因為它只檢測垂直拖動更新,當您按住它拖動小部件時,它會忽略 ScrollView 並監聽小部件的可拖動更新。 運行下面的代碼。 它現在對我有用。

body: SingleChildScrollView(
          child: Column(
            children: [
              Container(
                color: Colors.redAccent[200],
                height: 1000.0,
                width: 500.0,
                alignment: Alignment.center,
              ),
              GestureDetector(
                // onVerticalDragUpdate: (DragUpdateDetails details) {
                //   print("Start");
                //   print(details.localPosition);
                // },
                child: Container(
                  color: Colors.blueAccent[200],
                  height: 1000.0,
                  width: 500.0,
                  alignment: Alignment.center,
                ),

              )
            ],
          ),
        )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM