x_containers 1.3.0
x_containers: ^1.3.0 copied to clipboard
A Flutter package offering more adaptive and easy-to-use container widgets.
import "package:flutter/material.dart";
import "package:get/get.dart";
import "package:x_containers/x_containers.dart";
import "globals.dart";
import "widgets/widgets.dart";
void main() {
WidgetsFlutterBinding.ensureInitialized();
// Setting the global theme shared across XContainers.
xTheme.set(
padding: EdgeInsets.all(XLayout.paddingS),
paddingValue: XLayout.paddingM,
);
runApp(const ExampleApp());
}
/// A mock app to demonstrate how to use the XContainers.
class ExampleApp extends StatelessWidget {
/// Returns a [ExampleApp] matching the given parameters.
const ExampleApp({super.key});
@override
Widget build(BuildContext context) {
return GetMaterialApp(
home: const Home(),
theme: lightTheme,
darkTheme: darkTheme,
themeMode: ThemeMode.dark,
);
}
}
/// A simple tab listing a few XContainers.
class Home extends StatelessWidget {
// CONSTRUCTOR ===============================================================
/// Returns an instance of [Home] matching the given parameters.
const Home({super.key});
// BUILD =====================================================================
@override
Widget build(BuildContext context) {
final List<Widget> examples = [
const ExampleContainer(),
XLayout.verticalM,
const ExampleXContainer(),
const ExampleXInkContainer(),
const ExampleXCard(),
XLayout.verticalL,
const ExampleXDialog(),
const ExampleXSnackbar(),
];
return Scaffold(
appBar: AppBar(
title: const Text("XContainer: Examples"),
),
body: ListView.builder(
padding: EdgeInsets.all(XLayout.paddingM),
shrinkWrap: true,
itemCount: examples.length,
itemBuilder: (_, index) => Center(
child: examples[index],
),
),
);
}
}