[Flutter] 이미지에 Ripple 효과를 추가하는 방법(Stack 이외)

9704 단어 FlutterDarttech

네, 그것도 좋아요.


플루터로 이미지에 리플을 추가하려고 방법을 조사해 Stack에 이미지Material를 배치할 수 있는 방법이 인기를 끌었다.(예: 이것 또는 저것
다만, 이것보다 더 쉬운 방법을 찾았기 때문에 나는 그것을 공유한다.

메서드

Ink Widget 및 InkWell Widget 사용은 상당히 간단합니다.

원본 이미지에 Ripple 첨부

Ink.image 간결하게 쓸 수 있어요.
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyWidget(),
    ),
  );
}

class MyWidget extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Ink.image(
          width: 100,
          height: 100,
          image: NetworkImage('https://4.bp.blogspot.com/-SNILKxCoGxA/WMdTfmXnenI/AAAAAAABChM/HeJqR7MV9ZE2vXQFmdVeaZ3t6NxV6R9QwCLcB/s800/pet_nekotsugura.png'), 
          child: InkWell(
            onTap: () {
	    // 何かしらのTapイベント
	    },
          ),
        ),
      ),
    );
  }
}

필렛 등 가공된 이미지에 Ripple 추가


decorationInk을 사용하세요.
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyWidget(),
    ),
  );
}

class MyWidget extends StatelessWidget {
  final borderRadius = BorderRadius.circular(15);
  
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Ink(
          width: 100,
          height: 100,
          decoration: BoxDecoration(
            borderRadius: borderRadius,
            image: DecorationImage(
              image: NetworkImage(
                  'https://4.bp.blogspot.com/-SNILKxCoGxA/WMdTfmXnenI/AAAAAAABChM/HeJqR7MV9ZE2vXQFmdVeaZ3t6NxV6R9QwCLcB/s800/pet_nekotsugura.png'),
              fit: BoxFit.cover,
            ),
          ),
          child: InkWell(
            borderRadius: borderRadius,
            onTap: () {
	    // 何かしらのTapイベント
	    },
          ),
        ),
      ),
    );
  }
}

참고 자료


Codepen에서 이번 코드가 발생했습니다. 한번 시도해 보십시오.
무각
모나다

좋은 웹페이지 즐겨찾기