Superposer des containers

Bonjour,

Je travaille actuellement sur une application et je cherche à faire la page d’accueil qui consisterait en une image de fond et ensuite une zone par dessus qui devra être avec une couleur unie en fond et éventuellement si c’est faisable un léger effet transparent pour voir l’image qui est derrière. Enfin à l’intérieur de cette zone (container ?) j’ai un logo de l’application à mettre puis du texte et enfin un bouton pour entrer dans l’application et c’est tout. Comment peut-on faire ça avec flutter ?

Voici mon code :

import ‹ dart:ui ›;
import ‹ package:flutter/material.dart ›;
import ‹ login.dart ›;
import ‹ package:flutter_secure_storage/flutter_secure_storage.dart ›;
import ‹ package:http/http.dart › as http;
import ‹ dart:convert ›;
import ‹ dart:async ›;
import ‹ home.dart ›;
import ‹ globals.dart › as globals;
import ‹ package:awesome_page_transitions/awesome_page_transitions.dart ›;
import ‹ package:font_awesome_flutter/font_awesome_flutter.dart ›;
import ‹ package:onesignal_flutter/onesignal_flutter.dart ›;
import ‹ package:flutter_localizations/flutter_localizations.dart ›;
import ‹ package:easy_localization/easy_localization.dart ›;

void main() async {
WidgetsFlutterBinding.ensureInitialized();
await EasyLocalization.ensureInitialized();

runApp(
EasyLocalization(
supportedLocales: [Locale(‹ fr ›), Locale(‹ en ›)],
path: ‹ assets/translations ›, // ← change the path of the translation files
fallbackLocale: Locale(‹ en ›),
useOnlyLangCode: true,
child: MyApp()
),
);

}

class MyApp extends StatefulWidget {
@override

MyApp_State createState() {
return MyApp_State();
}
}

class MyApp_State extends State {

@override
void initState() {
super.initState();
initPlatformState();
}

final appTitle = ‹ BEMYFAUCET ›;

String mail=’’;
String pass=’’;

Future initPlatformState() async {
if (!mounted) return;

OneSignal.shared.setLogLevel(OSLogLevel.verbose, OSLogLevel.none);

var settings = {
  OSiOSSettings.autoPrompt: false,
  OSiOSSettings.promptBeforeOpeningPushUrl: true
};


// NOTE: Replace with your own app ID from https://www.onesignal.com
await OneSignal.shared.init("6387f006-d4a7-42a8-ac8d-50e5a2b70fc9", iOSSettings: settings);

OneSignal.shared.setInFocusDisplayType(OSNotificationDisplayType.notification);
OneSignal.shared.getPermissionSubscriptionState().then((response) {
  globals.OneSignal_ID = response.subscriptionStatus.userId.toString();
  print("ONESIGNAL USER_ID : "+globals.OneSignal_ID);
});

}

Widget build(BuildContext context) {
return MaterialApp(
title: ‹ BEMYFAUCET ›,
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
theme: ThemeData(
primarySwatch: Colors.blue,
inputDecorationTheme: const InputDecorationTheme(
labelStyle: TextStyle(color: Colors.white),
hintStyle: TextStyle(color: Colors.white),
),
fontFamily: ‹ PoetsenOne ›,
scaffoldBackgroundColor: const Color(0xFFEFEFEF)
),
home: Builder(
builder: (context) => Stack(
children: [
Positioned.fill(
child: Image( image: AssetImage(‹ assets/img/background.jpg ›), fit : BoxFit.fill, ),
),
Scaffold(
backgroundColor: Colors.transparent,
appBar: new AppBar(
title: new Text(« BEMYFAUCET »,style: TextStyle(fontFamily: ‹ Azonix ›)),
backgroundColor: Colors.transparent,
elevation: 0,
),
body:
Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
margin : const EdgeInsets.only(bottom:30),
child :
Image.network(« https://www.bemyfaucet.com/themes/img/logo_bemyfaucet.png »),
),
Container(
margin : const EdgeInsets.only(bottom:30),
child: Text(‹ faucet_libelle_1 ›.tr(),style: TextStyle(color: Colors.white,fontSize: 15,fontWeight: FontWeight.w500)),
),
Container(
margin : const EdgeInsets.only(bottom:30),
child: Text(‹ faucet_libelle_2 ›.tr(),style: TextStyle(color: Colors.white,fontSize: 15,fontWeight: FontWeight.w500)),
),
RaisedButton(
textColor: Colors.white,
color: Colors.green,
child : Text(‹ button_start ›.tr(),style: TextStyle(color: Colors.white,fontSize: 15,fontWeight: FontWeight.w500)),
onPressed: () async {
bool islog = await isconnect();
if (islog==false) {
Navigator.push(
context,
AwesomePageRoute(
transitionDuration: Duration(milliseconds: 1000),
exitPage: widget,
enterPage: LoginPage(),
transition: RotateUpTransition(),
),
);
}
else {
Navigator.push(
context,
AwesomePageRoute(
transitionDuration: Duration(milliseconds: 1000),
exitPage: widget,
enterPage: HomePage(),
transition: RotateUpTransition(),
),
);
}
},
),
],
),
),
)
]
)
)
);
}

Future isconnect() async {

}

Bonjour,
Il est possible d’utiliser un Container je pense :

body: Container(
    decoration: BoxDecoration(
      image: DecorationImage(
        image: AssetImage("assets/images/background.jpg"),
        fit: BoxFit.cover,
      ),
    ),
    child: null,
  ),

oui là tu auras un container avec l’image de fond de l’application. Mais je veux mettre du contenu par dessus l’image de fond

Bonjour. Je ne vois pas le problème dans le child tu met ton contenu et c’est OK non ?
Sinon je comprend pas ce que tu veux faire.