简体   繁体   English

显示从 sharedprefrence 到文本小部件 flutter 的数据列表?

[英]Display list of datas from sharedprefrence to text widget flutter?

I am saving some list of data to Sharedprefrence and tried to call the data from saved sharedprefrence and it returs all the values i have saved,then i tried to show data from sharedprefrence to a text widget but it shows null,我正在将一些数据列表保存到 Sharedprefrence 并尝试从已保存的 sharedprefrence 中调用数据并返回我保存的所有值,然后我尝试将 sharedprefrence 中的数据显示到文本小部件,但它显示 null,

i need something like,if i have t text widgets how do pass data to those two widget let's say ₹575 and TWA Cap我需要类似的东西,如果我有文本小部件,如何将数据传递给这两个小部件,比如说 ₹575 和 TWA Cap

Retrieving the data from sharedprfrence从 sharedprfence 中检索数据

List<String> listdata=[];
  void initState() {
    super.initState();
    SharedPrefrence().getCartItem().then((data) async{
      listdata = data;
      print(listdata);
    });
  }

this what i am geting from the sharedprefrence这就是我从共享偏好中得到的

[TWA Cap, ₹575, M, Red]

trying to shows te data to text widget (Whole widget)试图将数据显示到文本小部件(整个小部件)

     Widget CoupensLists() {
   
    return SingleChildScrollView(
      physics: NeverScrollableScrollPhysics(),
      child: Container(
        child: ListView.builder(
          shrinkWrap: true,
          physics: NeverScrollableScrollPhysics(),
          itemCount: 1,
          itemBuilder: (BuildContext context, int index) {
    
            return Row(

              children: <Widget>[
                Expanded(
                  child: Card(
                    elevation: 10,
                    shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(10.0),
                    ),
                    child: GestureDetector(
                      onTap: () {
                      },
                      child: Container(
                        height: 150,
                        width: 350,
                        child: Row(
                          children: <Widget>[
                            Column(
                              children: <Widget>[
                                Padding(
                                  padding:
                                      const EdgeInsets.symmetric(vertical: 5),
                                  child: Container(
                                    height: 50,
                                    width: 80,
                                    child: Image.network("image"),
                                    /* decoration: BoxDecoration(
                                      image: DecorationImage(
                                        image: Image.,
                                        fit: BoxFit.fill,
                                      ),
                                    ),*/
                                  ),
                                ),
                                SizedBox(
                                  height: 5,
                                ),
                                Text(
                                 "Prodcut name",
                                  style: TextStyle(
                                      fontSize: 14,
                                      fontWeight: FontWeight.bold),
                                ),
                                Text("Prodcut name",
                                    style: TextStyle(fontSize: 12)),
                                SizedBox(
                                  height: 10,
                                ),
                                Row(
                                  children: <Widget>[
                                    Padding(
                                      padding: const EdgeInsets.symmetric(
                                          vertical: 4),
                                      child: Container(
                                        width: 80,
                                        child: Stack(
                                          children: <Widget>[
                                            SvgPicture.asset(
                                              'assets/images/bg_price_btn_black.svg',
                                            ),
                                            Padding(
                                              padding: const EdgeInsets.all(5),
                                              child: Text(
                                                "Price"
                                                style: TextStyle(
                                                    color: Colors.white,
                                                    fontSize: 12),
                                              ),
                                            )
                                          ],
                                        ),
                                      ),
                                    ),
                                    Stack(
                                      children: <Widget>[
                                        SvgPicture.asset(
                                          'assets/images/bg_boon_btn_red.svg',
                                        ),
                                        Padding(
                                          padding: const EdgeInsets.all(5),
                                          child: Text(
                                            "Book Now",
                                            style: TextStyle(
                                                color: Colors.white,
                                                fontSize: 12),
                                          ),
                                        )
                                      ],
                                    ),
                                  ],
                                ),
                              ],
                            ),
                           
                          ],
                        ),
                      ),
                    ),
                  ),
                ),
              ],
            );
          },
        ),
      ),
    );
  }

Try this:尝试这个:

List<String> listdata=[];
  void initState() {
    super.initState();
    SharedPrefrence().getCartItem().then((data) async{      
      setState(() {
        listdata = data;
      });
    });
  }

You're getting this because you didn't upated your screen after changing the listdata variable你得到这个是因为你在改变 listdata 变量后没有更新你的屏幕

use in initail function    
setState(() {
    listdata = data;
});

then然后

Widget CoupensLists() {

return SingleChildScrollView(
  physics: NeverScrollableScrollPhysics(),
  child: Container(
    child: ListView.builder(
      shrinkWrap: true,
      physics: NeverScrollableScrollPhysics(),
      itemCount: 1,
      itemBuilder: (BuildContext context, int index) {

        return Row(

          children: <Widget>[
            Expanded(
              child: Card(
                elevation: 10,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(10.0),
                ),
                child: GestureDetector(
                  onTap: () {
                  },
                  child: Container(
                    height: 150,
                    width: 350,
                    child: Row(
                      children: <Widget>[
                        Column(
                          children: <Widget>[
                            Padding(
                              padding:
                                  const EdgeInsets.symmetric(vertical: 5),
                              child: Container(
                                height: 50,
                                width: 80,
                                child: Image.network("image"),
                                /* decoration: BoxDecoration(
                                  image: DecorationImage(
                                    image: Image.,
                                    fit: BoxFit.fill,
                                  ),
                                ),*/
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Text(
                            listdata.length!=0? listdata[0]:"",
                              style: TextStyle(
                                  fontSize: 14,
                                  fontWeight: FontWeight.bold),
                            ),
                            Text( listdata.length!=0? listdata[1]:"",
                                style: TextStyle(fontSize: 12)),
                            SizedBox(
                              height: 10,
                            ),
                            Row(
                              children: <Widget>[
                                Padding(
                                  padding: const EdgeInsets.symmetric(
                                      vertical: 4),
                                  child: Container(
                                    width: 80,
                                    child: Stack(
                                      children: <Widget>[
                                        SvgPicture.asset(
                                          'assets/images/bg_price_btn_black.svg',
                                        ),
                                        Padding(
                                          padding: const EdgeInsets.all(5),
                                          child: Text(
                                             listdata.length!=0? listdata[2]:"",
                                            style: TextStyle(
                                                color: Colors.white,
                                                fontSize: 12),
                                          ),
                                        )
                                      ],
                                    ),
                                  ),
                                ),
                                Stack(
                                  children: <Widget>[
                                    SvgPicture.asset(
                                      'assets/images/bg_boon_btn_red.svg',
                                    ),
                                    Padding(
                                      padding: const EdgeInsets.all(5),
                                      child: Text(
                                        listdata.length!=0? listdata[3]:"",
                                        style: TextStyle(
                                            color: Colors.white,
                                            fontSize: 12),
                                      ),
                                    )
                                  ],
                                ),
                              ],
                            ),
                          ],
                        ),
                       
                      ],
                    ),
                  ),
                ),
              ),
            ),
          ],
        );
      },
    ),``
  ),
);

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM