パッケージ、リポジトリ、アプリカテゴリを検索

pluto_layout のカバー
パッケージ詳細v1.0.0

pluto_layout

PlutoLayout は、各側にメニューまたはタブ画面を設定できる Flutter UI パッケージです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
130
いいね数
82
Pub ポイント
140

パッケージをインストール

flutter pub add pluto_layout

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

PlutoLayout は、画面の任意の側にカスタマイズ可能なメニューまたはタブインターフェースを作成するために設計されたFlutterパッケージです。開発者が応答性があり、サイドベースのナビゲーションレイアウトを簡単に構築できるようにし、水平および垂直配置をサポートしています。ダッシュボード、管理パネル、または折りたたみ可能なサイドバーが必要なアプリに最適で、複数のプラットフォーム間でスムーズな遷移と柔軟な位置決めを提供します。このパッケージは、単純なpub addコマンドを使用して既存のFlutterプロジェクトにシームレスに統合できます。

用途

  • サイドナビゲーションメニュー
  • ダッシュボードUI
  • 折りたたみ式パネル
  • 管理者ダッシュボード
  • レスポンシブレイアウト
  • タブインターフェースデザイン

主な機能

  • サイドバイサイドレイアウトの設定
  • カスタマイズ可能なメニューの位置
  • スムーズなアニメーション
  • クロスプラットフォーム対応
  • pub を通じた簡単な統合
  • 柔軟なウィジェット配置

適している対象

  • ダッシュボードアプリを開発する開発者
  • サイドナビゲーションが必要なUIデザイナー
  • レスポンシブレイアウトを必要とするプロジェクト
  • Flutter初心者がレイアウトパターンを探求しています
  • 複雑なナビゲーション要件を持つアプリ

注意事項

  • カスタムテーマ用に追加のスタイル設定が必要になる場合があります
  • 基本的な例以外のドキュメントは限られている
  • シングルペインレイアウトに最適
  • 深くネストされたウィジェットによるパフォーマンスへの影響
  • フルスクリーンモーダルオーバーレイには適していません

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

PlutoLayout - v1.0.0

License: MIT

PlutoLayout is a Flutter UI package that can configure a menu or tab screen on each side.
You can adjust the width of the tab menu by dragging the right border of the tab menu.
You can also assign custom shortcut keys to open or close tab views and resize tab views.

Demo

Demo Web

Installation

pub.dev

Screenshot

PlutoLayout Screenshot

Usage
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pluto_layout/pluto_layout.dart';

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData.dark(useMaterial3: true),
      home: const ExamplePage(),
    );
  }
}

class ExamplePage extends StatefulWidget {
  const ExamplePage({super.key});

  @override
  State<ExamplePage> createState() => _ExamplePageState();
}

class _ExamplePageState extends State<ExamplePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: PlutoLayout(
        shortcuts: {
          LogicalKeySet(LogicalKeyboardKey.escape):
          PlutoLayoutActions.hideAllTabView(),
          LogicalKeySet(LogicalKeyboardKey.alt, LogicalKeyboardKey.digit1):
          PlutoLayoutActions.rotateTabView(
            PlutoLayoutContainerDirection.left,
          ),
          LogicalKeySet(LogicalKeyboardKey.alt, LogicalKeyboardKey.digit2):
          PlutoLayoutActions.rotateTabView(
            PlutoLayoutContainerDirection.right,
          ),
          LogicalKeySet(LogicalKeyboardKey.alt, LogicalKeyboardKey.arrowUp):
          PlutoLayoutActions.increaseTabView(),
          LogicalKeySet(LogicalKeyboardKey.alt, LogicalKeyboardKey.arrowDown):
          PlutoLayoutActions.decreaseTabView(),
        },
        body: const PlutoLayoutContainer(
          child: Text('Body container'),
        ),
        top: PlutoLayoutContainer(
          child: PlutoLayoutTabs(
            items: [
              PlutoLayoutTabItem(
                id: 'top1',
                title: 'top1',
                tabViewBuilder: (e) => const Text('top1'),
              ),
              PlutoLayoutTabItem(
                id: 'top2',
                title: 'top2',
                tabViewBuilder: (e) => const Text('top2'),
              ),
            ],
          ),
        ),
        left: PlutoLayoutContainer(
          child: PlutoLayoutTabs(
            items: [
              PlutoLayoutTabItem(
                id: 'left1',
                title: 'left1',
                tabViewBuilder: (e) => const Text('left1'),
              ),
              PlutoLayoutTabItem(
                id: 'left2',
                title: 'left2',
                tabViewBuilder: (e) => const Text('left2'),
              ),
            ],
          ),
        ),
        right: PlutoLayoutContainer(
          child: PlutoLayoutTabs(
            items: [
              PlutoLayoutTabItem(
                id: 'right1',
                title: 'right1',
                tabViewBuilder: (e) => const Text('right1'),
              ),
              PlutoLayoutTabItem(
                id: 'right2',
                title: 'right2',
                tabViewBuilder: (e) => const Text('right2'),
              ),
            ],
          ),
        ),
        bottom: PlutoLayoutContainer(
          child: PlutoLayoutTabs(
            items: [
              PlutoLayoutTabItem(
                id: 'bottom1',
                title: 'bottom1',
                tabViewBuilder: (e) => const Text('bottom1'),
              ),
              PlutoLayoutTabItem(
                id: 'bottom2',
                title: 'bottom2',
                tabViewBuilder: (e) => const Text('bottom2'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Flutter version compatible
Flutter PlutoLayout
3.7.0 or higher 1.0.0 or higher
Less than 3.3.7 0.x

Related packages

develop packages that make it easy to develop admin pages or CMS with Flutter.


Donate to this project

Buy me a coffee


Jetbrains provides a free license

IDE license support

カテゴリー

依存関係

依存関係一覧 3 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。