मैं एक बटन बना रहा हूं लेकिन मैं चाहता हूं कि हर बार जब मैं इसे दबाता हूं (उदाहरण के लिए चालू और बंद) तो टेक्स्ट बदल जाता है।

यह मेरा बटन वर्ग है।

class TextSend extends StatelessWidget {
String title;
Function onTap;
TextSend(this.title, this.onTap);

@override
Widget build(BuildContext context) {
  return RaisedButton(
    color: Colors.green,
    disabledColor: Colors.grey,
    textColor: Colors.white,
    disabledTextColor: Colors.black38,
    child: title,
    onPressed: onTap,
  );
}
}

यह बटन उदाहरण है, जहां मैं इसे किसी अन्य वर्ग पर कॉल करता हूं:

TextSend('Button on', Navigator.push(context, MaterialPageRoute(builder: (context) => MQTTView()));),
0
Miles 5 नवम्बर 2020, 22:09

2 जवाब

सबसे बढ़िया उत्तर
  1. टेक्स्ट को बदलने के लिए, आपको स्टेटलेस विजेट को स्टेटफुल विजेट में बदलना होगा, क्योंकि स्टेटलेस विजेट केवल उन स्थिर पेजों के लिए है जो सामग्री को नहीं बदलते हैं।

  2. उसके बाद बटन में टेक्स्ट रखने के लिए आपको टेक्स्ट विजेट को उठाया बटन के बच्चे के रूप में देना होगा, न कि स्ट्रिंग।

  3. टेक्स्ट बदलने के लिए आपको बटन दबाए जाने पर फ़ंक्शन को कॉल करना होगा, वह फ़ंक्शन शीर्षक चर को बदलने वाला है और उसके बाद "सेटस्टेट" फ़ंक्शन को कॉल करें जो पृष्ठ को रीफ्रेश करने के लिए ज़िम्मेदार है ताकि आपके परिवर्तन प्रदर्शित किए जा सकें

यहां आपका कोड संशोधित है और आपको वह काम करना चाहिए जो आप चाहते हैं। अगर आपको कुछ याद आती है तो बस मुझे बताएं। धन्यवाद

import 'package:flutter/material.dart';

class TextSend extends StatefulWidget {
String title;
Function onTTap;
TextSend(this.title, this.onTTap);

  @override
  _TextSendState createState() => _TextSendState();
}

class _TextSendState extends State<TextSend> {


@override
Widget build(BuildContext context) {
  return RaisedButton(
    color: Colors.green,
    disabledColor: Colors.grey,
    textColor: Colors.white,
    disabledTextColor: Colors.black38,
    child: Text(widget.title),
    onPressed: changeText, //
  );
}


// method responsible of changing the text

changeText(){
  setState(() {
    widget.title='text changed';
  });
}


}

0
Khalil LAABOUDI 5 नवम्बर 2020, 23:01

आपको एक StatefulWidget वर्ग की आवश्यकता है। स्पंदन प्रलेखन में वास्तव में एक अच्छा ट्यूटोरियल है जो आपकी समस्या के समान एक उदाहरण दिखाता है।

0
Michal Karbownik 5 नवम्बर 2020, 23:08