FLUTTER ECOSYSTEM

version-two/flutter_imagebutton

Flutter用の画像ボタン

flutter_imagebutton のプロジェクト画像
Stars
6
Forks
5
最終プッシュ(UTC)
2024/12/13
プロジェクト状態
公開中
Version Two s.r.o. GitHub avatar
GITHUB Organization

Version Two s.r.o. ↗

Version Two - Digital advertising agency focusing on web and mobile app development

Bratislava, Slovakia公式サイト ↗
言語DartKotlinSwiftRubyObjective-C

技術トピック

このリポジトリが公開するパッケージ

使用している依存関係

依存関係一覧 3 件
  • flutter{"sdk":"flutter"}
  • flutter_test開発用{"sdk":"flutter"}
  • flutter_lints開発用^2.0.0

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

README を開く / 閉じる

ImageButton

A customizable button widget composed of two images.

About

ImageButton is a simple plugin that allows you to create buttons using images with two states: pressed and unpressed. It is designed for use cases where you want a button that visually responds to user interaction with images.


How to Use ImageButton

Widget build(BuildContext context) {
  return ImageButton(
    child: Row(
      children: [
        Icon(Icons.star, color: Colors.white),
        Text("Click Me", style: TextStyle(color: Colors.white))
      ],
    ),
    width: 100,
    height: 50,
    pressedImage: Image.asset("assets/pressed.png"),
    unpressedImage: Image.asset("assets/unpressed.png"),
    onTap: () {
      print('Button pressed!');
    },
  );
}

ImageButton Properties

Property Type Description
child Widget? Custom widget to display inside the button. Preferred over children.
children List<Widget> Widgets to be displayed inside the button (deprecated, use child instead).
unpressedImage Image The image displayed when the button is not pressed.
pressedImage Image The image displayed when the button is pressed.
label Widget? An optional label widget displayed below the button.
onTap VoidCallback? Callback function triggered when the button is tapped.
width double? Width of the button.
height double? Height of the button.
mainAxisAlignment MainAxisAlignment How the children are aligned horizontally. Default is MainAxisAlignment.center.
crossAxisAlignment CrossAxisAlignment How the children are aligned vertically. Default is CrossAxisAlignment.center.
isEnabled bool Determines if the button is interactable. Default is true.
isLoading bool Shows a loading indicator if set to true. Default is false.
loadingIndicator Widget? Custom widget to show as the loading indicator. Defaults to CircularProgressIndicator().
loadingColor Color? Color of the loading indicator if isLoading is set to true. Defaults to null.

Example Use Case

Here is an example showcasing how to use ImageButton in a practical scenario:

import 'package:flutter/material.dart';
import 'package:imagebutton/imagebutton.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("ImageButton Example")),
        body: Center(
          child: ImageButton(
            child: Row(
              children: [
                Icon(Icons.thumb_up, color: Colors.white),
                SizedBox(width: 5),
                Text("Like", style: TextStyle(color: Colors.white))
              ],
            ),
            width: 120,
            height: 50,
            pressedImage: Image.asset("assets/button_pressed.png"),
            unpressedImage: Image.asset("assets/button_unpressed.png"),
            isLoading: false,
            onTap: () {
              print("Button Pressed");
            },
          ),
        ),
      ),
    );
  }
}

Example Animation

Below is an example animation of the ImageButton in action:

Example Animation


Contributions

Contributions are welcome! Feel free to fork the repository and submit a pull request for any enhancements or bug fixes.


License

This project is licensed under the MIT License. See the LICENSE file for details.