मैं फ़्लटर में अपनी मुख्य स्क्रीन की पृष्ठभूमि का रंग कैसे सेट करूं?


88

मैं स्पंदन सीख रहा हूं, और मैं बहुत मूल बातों से शुरू कर रहा हूं। मैं MaterialApp का उपयोग नहीं कर रहा हूँ। पूरे स्क्रीन का बैकग्राउंड कलर सेट करने का अच्छा तरीका क्या है?

यहाँ मेरे पास अभी तक क्या है:

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new Center(child: new Text("Hello, World!"));
  }
}

मेरे कुछ प्रश्न हैं:

  • पृष्ठभूमि का रंग सेट करने का एक मूल तरीका क्या है?
  • मैं वास्तव में स्क्रीन पर क्या देख रहा हूं? कौन सा कोड "" पृष्ठभूमि है? क्या पृष्ठभूमि का रंग सेट करने के लिए एक चीज है? यदि नहीं, तो एक सरल और उपयुक्त "सरल पृष्ठभूमि" (पृष्ठभूमि रंग को चित्रित करने के लिए) क्या है।

सहायता के लिए धन्यवाद!

उपरोक्त कोड सफेद पाठ के साथ एक काली स्क्रीन उत्पन्न करता है: यहाँ छवि विवरण दर्ज करें

जवाबों:


76

मुझे लगता है कि आप सफेद पृष्ठभूमि को करने के लिए एक मचान का उपयोग भी कर सकते हैं। यहाँ कुछ कोड है जो मदद कर सकता है।

import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
  @override
    Widget build(BuildContext context) {

      return new MaterialApp(
        title: 'Testing',
        home: new Scaffold(
        //Here you can set what ever background color you need.
          backgroundColor: Colors.white,
        ),
      );
    }
}

आशा है कि यह मदद करता है 😊


मैं बॉर्डर के लिए नीला रंग देना चाहता हूं और कंटेनर पृष्ठभूमि के रंग के लिए एम्बर, मैं कैसे कर सकता हूं?
कमलेश

73

आप एक बार में सभी स्कैफोल्ड में पृष्ठभूमि रंग सेट कर सकते हैं।

बस scaffoldBackgroundColor सेट करें : ThemeData में

 MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(scaffoldBackgroundColor: const Color(0xFFEFEFEF)),
      home: new MyHomePage(title: 'Flutter Demo Home Page'),
    );

4
सभी पृष्ठों पर एक ही पृष्ठभूमि का रंग होना आवश्यक है (ज्यादातर मचान)। धन्यवाद।
इक्रस

1
महान जवाब, खासकर यदि आप रूटिंग और नेविगेशन का उपयोग करते हैं (स्कैफोल्ड से उच्च-ऑर्डर विजेट बनाने से बेहतर है और सभी शीर्ष-स्तरीय विजेट पर इसका उपयोग करें)।
नादर घनबारी

42

यहाँ एक तरीका है जो मुझे ऐसा करने के लिए मिला। मुझे नहीं पता कि क्या बेहतर तरीके हैं, या व्यापार-बंद क्या हैं।

कंटेनर "जितना संभव हो उतना बड़ा होने की कोशिश करता है", https://flutter.io/layout/ के अनुसार । इसके अलावा, कंटेनर एक ले सकता है decoration, जो एक BoxDecoration हो सकता है , जिसमें एक color(जो कि पृष्ठभूमि का रंग है) हो सकता है।

यहां एक नमूना है जो वास्तव में स्क्रीन को लाल रंग से भरता है, और "हैलो, वर्ल्ड!" केंद्र में:

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new Container(
      decoration: new BoxDecoration(color: Colors.red),
      child: new Center(
        child: new Text("Hello, World!"),
      ),
    );
  }
}

ध्यान दें, कंटेनर MyApp बिल्ड () द्वारा लौटाया गया है। कंटेनर में एक सजावट और एक बच्चा है, जो केंद्रित पाठ है।

इसे यहां कार्रवाई में देखें:

यहाँ छवि विवरण दर्ज करें


3
कंटेनर एक अच्छा विकल्प है यदि आप एक साधारण ऐप या एक ऐप बना रहे हैं जो सामग्री डिज़ाइन का उपयोग नहीं कर रहा है। यदि आप एक सामग्री ऐप बना रहे हैं, तो अपने सभी कैनवस और कार्ड पर एक डार्क बैकग्राउंड चाहते हैं, तो ThemeData.dark () का उपयोग करने पर विचार करें। आप कार्डडेलर और कैनवसकोलर के तर्कों का उपयोग करते हुए थीम कार्ड निर्माता के कार्ड और कैनवस बैकग्राउंड रंगों पर ठीक-ठीक नियंत्रण प्राप्त कर सकते हैं। docs.flutter.io/flutter/material/ThemeData/ThemeData.html
कॉलिन जैक्सन

1
कस्टम RGB स्थापित करने के बारे में क्या?
नीरव मदारिया

मैं बॉर्डर के लिए नीला रंग देना चाहता हूं और कंटेनर पृष्ठभूमि के रंग के लिए एम्बर, मैं कैसे कर सकता हूं?
कमलेश

मैं मचान का उपयोग नहीं कर रहा हूं और यह समाधान अविश्वसनीय है। धन्यवाद।
एडगर फ्रॉज

27

इसे करने के कई तरीके हैं, मैं यहां कुछ सूचीबद्ध कर रहा हूं।

  1. का उपयोग करते हुए backgroundColor

    Scaffold(
      backgroundColor: Colors.black,
      body: Center(...),
    )
    
  2. में उपयोग कर रहा ContainerहैSizedBox.expand

    Scaffold(
      body: SizedBox.expand(
        child: Container(
          color: Colors.black,
          child: Center(...)
        ),
      ),
    )
    
  3. का उपयोग करते हुए Theme

    Theme(
      data: Theme.of(context).copyWith(scaffoldBackgroundColor: Colors.black),
      child: Scaffold(
        body: Center(...),
      ),
    )
    


4

स्पंदन के मूल उदाहरण पर आप backgroundColor: Colors.Xपाड़ के साथ सेट कर सकते हैं

  @override
 Widget build(BuildContext context) {
   // This method is rerun every time setState is called, for instance as done
  // by the _incrementCounter method above.
   //
  // The Flutter framework has been optimized to make rerunning build methods
   // fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
  backgroundColor: Colors.blue,
  body: Center(
    // Center is a layout widget. It takes a single child and positions it
    // in the middle of the parent.
    child: Column(
      // Column is also layout widget. It takes a list of children and
      // arranges them vertically. By default, it sizes itself to fit its
      // children horizontally, and tries to be as tall as its parent.
      //
      // Invoke "debug painting" (press "p" in the console, choose the
      // "Toggle Debug Paint" action from the Flutter Inspector in Android
      // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
      // to see the wireframe for each widget.
      //
      // Column has various properties to control how it sizes itself and
      // how it positions its children. Here we use mainAxisAlignment to
      // center the children vertically; the main axis here is the vertical
      // axis because Columns are vertical (the cross axis would be
      // horizontal).
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text(
          'You have pushed the button this many times:',
        ),
        Text(
          '$_counter',
          style: Theme.of(context).textTheme.display1,
        ),
      ],
    ),
  ),
  floatingActionButton: FloatingActionButton(
    onPressed: _incrementCounter,
    tooltip: 'Increment',
    child: Icon(Icons.add_circle),
  ), // This trailing comma makes auto-formatting nicer for build methods.
);
}

4

आपको स्कैफोल्ड विजेट वापस करना चाहिए और अपना विजेट अंदर जोड़ना चाहिए स्कैफोल्ड के

इस कोड के रूप में चूसना:

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return Scaffold(
          backgroundColor: Colors.white,
          body: Center(child: new Text("Hello, World!"));
    );
  }
}

2

मुझे लगता है कि आपको MaterialAppविजेट और उपयोग करने themeऔर primarySwatchरंग के साथ सेट करने की आवश्यकता है जो आप चाहते हैं। नीचे दिए गए कोड की तरह देखो,

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

1

और यह पृष्ठभूमि का रंग बदलने के लिए एक और तरीका है:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: Scaffold(backgroundColor: Colors.pink,),);
  }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.