GridView Flutter 내에서 위젯의 오프셋을 얻는 방법

괴짜

GridView 내부의 Inkwell Widget에 폭발 효과를 추가하려고하는데 오프셋을 찾아야하는데 지금까지 시도해 보았습니다.

GridView.builder(
  itemCount: 10,
  itemBuilder: (ctx, ind) {
    return InkWell(
      onTap: () async {
        try {
          final RenderBox box = ctx.findRenderObject();
          Offset position = box.localToGlobal(Offset.zero,
            ancestor: context.findRenderObject()
          );
          double x = position.dx;
          double y = position.dy;
          double w = box.size.width;
          Future.delayed(Duration(milliseconds: 100)).then(
            (_) => _particleField.lineExplosion(x, y, w)
          );
        } catch (e) {
          print(e);
        }
      },
      child: Center(
        child: Text("${ind + 1},000,000")
      ),  
    );
  },
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 2, 
    childAspectRatio: 3
  ),
)

하지만이 오류가 발생합니다.

'RenderSliverGrid'유형은 'RenderBox'유형의 하위 유형이 아닙니다.

케렐

이것이 당신이 찾고있는 것입니까?

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: GridExample(),
      ),
    );
  }
}

class GridExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GridView.builder(
      itemCount: 10,
      itemBuilder: (ctx, ind) {
        return _Item('${ind + 1},000,000');
      },
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 2, childAspectRatio: 3),
    );
  }
}

class _Item extends StatelessWidget {
  _Item(this.title);
  String title;

  final GlobalKey _globalKey = GlobalKey();

  @override
  Widget build(BuildContext context) {
    return InkWell(
      key: _globalKey,
      onTap: () async {
        final RenderBox referenceBox =
            _globalKey.currentContext.findRenderObject();

        final position = referenceBox.localToGlobal(Offset.zero);
        final x = position.dx;
        final y = position.dy;
        final w = referenceBox.size.width;
        Future.delayed(Duration(milliseconds: 100))
            .then((_) => _particleFieldLineExplosion(x, y, w));
      },
      child: Center(child: Text(title)),
    );
  }

  _particleFieldLineExplosion(x, y, w) {
    print(x);
    print(y);
    print(w);
  }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Flutter에서 GridView 위젯의 너비를 제한하는 방법

분류에서Dev

Flutter에서 배열 내부의 위젯에 값을 전달하는 방법

분류에서Dev

js의 시간대에서 UTC 오프셋을 얻는 방법

분류에서Dev

화면에서 위젯의 위치를 얻는 방법 (가급적 오프셋에서)?

분류에서Dev

Flutter : 컨테이너 내부의 고정 된 중앙 위젯 아래에 위젯을 배치하는 방법

분류에서Dev

Yii2 : GridView 위젯 내에서 조건을 사용하는 방법

분류에서Dev

Flutter-본문의 미래 빌더 텍스트 위젯에서 값 반환을 얻는 방법

분류에서Dev

Flutter Bloc 위젯 자체에서 BlocBuilder의 위젯을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Flutter의 다른 파일에서 위젯 섹션을 호출하는 방법

분류에서Dev

Flutter의 ByteData에서 이미지 위젯을로드하는 방법

분류에서Dev

지리적 위치에서 UTC 시간 오프셋을 얻는 방법

분류에서Dev

Flutter에서 열 위젯 내부에 탭을 추가하는 방법

분류에서Dev

Flutter에서 Stack 위젯 내부에 특정 자식을 숨기는 방법

분류에서Dev

GridView에서 위치를 얻는 방법

분류에서Dev

GridView의 edittext에서 값을 얻는 방법

분류에서Dev

gridview에서 templatefield의 값을 배열로 얻는 방법

분류에서Dev

yii2에서 gridview의 열 머리글을 얻는 방법

분류에서Dev

루비의 IO.foreach 루프에서 오프셋에서 블록을 얻는 방법은 무엇입니까?

분류에서Dev

Flutter의 StatefulWidget 클래스의 setState () 메서드에서 위젯을 다시로드하는 방법

분류에서Dev

DateTime에서 Flutter의 Gridview로 월 길이를 가져 오는 방법

분류에서Dev

Flutter에서 동적 크기로 위젯의 크기에 따라 모서리 반경을 설정하는 방법

분류에서Dev

Flutter에서 Slider 위젯의 썸 색상을 사용자 정의하는 방법은 무엇입니까?

분류에서Dev

Flutter : Text 위젯에서 maxLine을 설정하는 방법

분류에서Dev

문자열에서 Flutter 위젯을 만드는 방법

분류에서Dev

div에서 문자 오프셋을 얻는 방법

분류에서Dev

Time.now에서 시간대 오프셋을 얻는 방법

분류에서Dev

Flutter : showTimePicker 위젯의 색상을 변경하는 방법

분류에서Dev

클래스 내에서 tkinter의 nametowidget 함수로 위젯 이름을 얻는 방법

분류에서Dev

Flutter Wrap 위젯의 Text 위젯을 이전 위젯의 끝에서 시작하고 이전 위젯 아래에서 시작하지 않는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Flutter에서 GridView 위젯의 너비를 제한하는 방법

  2. 2

    Flutter에서 배열 내부의 위젯에 값을 전달하는 방법

  3. 3

    js의 시간대에서 UTC 오프셋을 얻는 방법

  4. 4

    화면에서 위젯의 위치를 얻는 방법 (가급적 오프셋에서)?

  5. 5

    Flutter : 컨테이너 내부의 고정 된 중앙 위젯 아래에 위젯을 배치하는 방법

  6. 6

    Yii2 : GridView 위젯 내에서 조건을 사용하는 방법

  7. 7

    Flutter-본문의 미래 빌더 텍스트 위젯에서 값 반환을 얻는 방법

  8. 8

    Flutter Bloc 위젯 자체에서 BlocBuilder의 위젯을 업데이트하는 방법은 무엇입니까?

  9. 9

    Flutter의 다른 파일에서 위젯 섹션을 호출하는 방법

  10. 10

    Flutter의 ByteData에서 이미지 위젯을로드하는 방법

  11. 11

    지리적 위치에서 UTC 시간 오프셋을 얻는 방법

  12. 12

    Flutter에서 열 위젯 내부에 탭을 추가하는 방법

  13. 13

    Flutter에서 Stack 위젯 내부에 특정 자식을 숨기는 방법

  14. 14

    GridView에서 위치를 얻는 방법

  15. 15

    GridView의 edittext에서 값을 얻는 방법

  16. 16

    gridview에서 templatefield의 값을 배열로 얻는 방법

  17. 17

    yii2에서 gridview의 열 머리글을 얻는 방법

  18. 18

    루비의 IO.foreach 루프에서 오프셋에서 블록을 얻는 방법은 무엇입니까?

  19. 19

    Flutter의 StatefulWidget 클래스의 setState () 메서드에서 위젯을 다시로드하는 방법

  20. 20

    DateTime에서 Flutter의 Gridview로 월 길이를 가져 오는 방법

  21. 21

    Flutter에서 동적 크기로 위젯의 크기에 따라 모서리 반경을 설정하는 방법

  22. 22

    Flutter에서 Slider 위젯의 썸 색상을 사용자 정의하는 방법은 무엇입니까?

  23. 23

    Flutter : Text 위젯에서 maxLine을 설정하는 방법

  24. 24

    문자열에서 Flutter 위젯을 만드는 방법

  25. 25

    div에서 문자 오프셋을 얻는 방법

  26. 26

    Time.now에서 시간대 오프셋을 얻는 방법

  27. 27

    Flutter : showTimePicker 위젯의 색상을 변경하는 방법

  28. 28

    클래스 내에서 tkinter의 nametowidget 함수로 위젯 이름을 얻는 방법

  29. 29

    Flutter Wrap 위젯의 Text 위젯을 이전 위젯의 끝에서 시작하고 이전 위젯 아래에서 시작하지 않는 방법은 무엇입니까?

뜨겁다태그

보관