Support
Quality
Security
License
Reuse
kandi has reviewed Android-PullToRefresh and discovered the below as its top functions. This is intended to give you an instant insight into Android-PullToRefresh implemented functionality, and help decide if they suit your requirements.
Supports both Pulling Down from the top, and Pulling Up from the bottom (or even both).
Animated Scrolling for all devices.
Over Scroll supports for devices on Android v2.3+.
Currently works with: ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPager
Integrated End of List Listener for use of detecting when the user has scrolled to the bottom.
Maven Support.
Indicators to show the user when a Pull-to-Refresh is available.
Support for ListFragment!
Lots of Customisation options!
License
Copyright 2011, 2012 Chris Banes
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
QUESTION
Error: Property 'body' cannot be accessed on 'Response?' because it is potentially null
Asked 2022-Mar-29 at 00:29so I'am trying to learn dart and flutter and everything went well so far. But now I'am stuck at an error which I cannot handle. I coded a function which is supposed to asynchronously return the actual BTC price from https://blockchain.info/ticker.
Only thing it returns is errors:
Error: Property 'body' cannot be accessed on 'Response?' because it is potentially null.
- 'Response' is from 'package:http/src/response.dart' ('/D:/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.13.4/lib/src/response.dart').
Try accessing using ?. instead.
return Text("${BTCPrice.fromJson(jsonDecode(snapshot.data.body)).eur}");
^^^^
/D:/flutter/packages/flutter/lib/src/widgets/async.dart:242:12: Context: 'data' refers to a property so it couldn't be promoted.
See http://dart.dev/go/non-promo-property
final T? data;
^
My Code:
import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
Future<http.Response> fetchBTCPrice() async {
final response = await http.get(Uri.https('blockhain.info', 'ticker'));
return response;
}
Widget buildBTCPrice() {
return FutureBuilder<http.Response>(
future: fetchBTCPrice(),
builder: (context, snapshot) {
if (snapshot.hasData) {
int? statusCode = snapshot.data?.statusCode;
if (statusCode == 200) {
return Text("${BTCPrice.fromJson(jsonDecode(snapshot.data.body)).eur}");
}
return Text('$statusCode');
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}
return CircularProgressIndicator();
},
);
}
class BTCPrice {
final double eur;
BTCPrice({required this.eur});
factory BTCPrice.fromJson(Map<String, dynamic> json) {
print(json);
return BTCPrice(
eur: json['eur']['15m']
);
}
}
Last things to mention: I'am running the application on a Android Emulator powerd by Android Studio; and please feel free to hand over any advice you have (in terms of code improvement), even if it is not fixing my issue.
ANSWER
Answered 2022-Mar-29 at 00:29To get rid of that error you need to use the bang operator to tell the compiler that snapshot.data
won't be null.
if (statusCode == 200) {
return Text(
"${BTCPrice.fromJson(jsonDecode(snapshot.data!.body)).eur}"); // adding ! on data
}
The unrelated error you mentioned in your comment:
unexpected character (at character 1) <html><head><title>loading...</title></head><body><script type='text/javasc... ^
would be fixed by changing your GET
request from this
final response = await http.get(Uri.https('blockhain.info', 'ticker'));
to this
final response = await http.get(Uri.parse('https://blockchain.info/ticker'));
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
No vulnerabilities reported
Save this library and start creating your kit
Explore Related Topics
Save this library and start creating your kit