'How to fix this error "Too many positional arguments: 0 expected, but 1 found." in flutter
When I made program about a news app, I got an error.
This my HomePage code
import 'dart:io';
import 'package:bubble_tab_indicator/bubble_tab_indicator.dart';
import 'package:carousel_slider/carousel_options.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:last_news/article.dart';
import 'package:last_news/network/api_request.dart';
import 'package:last_news/news.dart';
import 'package:last_news/state.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:riverpod/riverpod.dart';
class Home extends StatefulWidget {
Home({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> with SingleTickerProviderStateMixin{
final List<Tab> tabs = <Tab>[
new Tab(text: 'General'),
new Tab(text: 'Technology'),
new Tab(text: 'Sport'),
new Tab(text: 'Business'),
new Tab(text: 'Entertainment'),
new Tab(text: 'Health'),
];
late TabController _tabController;
@override
void initState() {
// TODO: implement initState
super.initState();
_tabController = new TabController(length: tabs.length, vsync: this);
}
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('News App'),
bottom: TabBar(
isScrollable: true,
unselectedLabelColor: Colors.grey,
labelColor: Colors.white,
indicatorSize: TabBarIndicatorSize.tab,
indicator: BubbleTabIndicator(
indicatorHeight: 25.0,
indicatorColor: Colors.blueAccent,
tabBarIndicatorSize: TabBarIndicatorSize.tab,
),
tabs: tabs,
controller: _tabController,
),
),
body: TabBarView(
controller: _tabController,
children: tabs.map((Tab){
return FutureBuilder(
future: fetchNewsByCategory(Tab.text!),
builder: (context, snapshot) {
if(snapshot.hasError)
return Center(child: Text('${snapshot.error}'),);
else if(snapshot.hasData)
{
var newsList = snapshot.data as News;
var sliderList = newsList.articles != null ?
newsList.articles!.length > 10 ?
newsList.articles!.getRange(0, 10).toList()
: newsList.articles!.take(newsList.articles!.length).toList()
: [];
var contentList = newsList.articles !=null ?
newsList.articles!.length > 10 ?
newsList.articles!.getRange(11, newsList.articles!.length - 1).toList()
: [] : [];
return SafeArea(child: Column(
children: [
CarouselSlider(
options: CarouselOptions(
aspectRatio: 16/9,
enlargeCenterPage: true,
viewportFraction: 0.8,
),
items: sliderList.map((item){
return Builder(builder: (context){
return GestureDetector(
onTap: () {
context.read(urlState).state = item.url;
Navigator.pushNamed(context, '/detail');
}, child: Stack(children: [
ClipRRect(
borderRadius: BorderRadius.circular(8),
child: Image.network(
'${item.urlToImage}',
fit: BoxFit.cover,),
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
color: Color(0xAA333639),
child: Padding(
padding: const EdgeInsets.all(8), child:
Text('${item.title}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold
),
),
),
),
],
)
]),
);
});
}).toList(),
),
Divider(thickness: 3),
Padding(padding: const EdgeInsets.only(left: 8),
child: Text('Trending',
style: TextStyle(fontSize: 26,fontWeight: FontWeight.bold),
),
),
Divider(thickness: 3),
Expanded(child: ListView.builder(
itemCount: contentList.length,
itemBuilder:(context, index) {
return GestureDetector(onTap: (){
context.read(urlState).state = contentList[index].url;
Navigator.pushNamed(context, '/detail');
}, child:
ListTile(
leading: ClipRRect(
borderRadius: BorderRadius.circular(8),
child: Image.network('${contentList[index].urlToImage}',
fit: BoxFit.cover,
height: 80,
width: 80,
),
),
title: Text('${contentList[index].title}',
style: TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text('${contentList[index].publishedAt}',
style: TextStyle(fontStyle: FontStyle.italic)),
),);
}))
],
));
}
else return Center(child: CircularProgressIndicator(),);
});
}).toList(),
),
);
}
}
And this my NewsDetail code (This code is linked to the HomePage code)
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:last_news/state.dart';
import 'package:webview_flutter/webview_flutter.dart';
class NewsDetail extends StatefulWidget {
@override
State<NewsDetail> createState() => _NewsDetailState();
}
class _NewsDetailState extends State<NewsDetail> {
double progress = 0;
final Completer<WebViewController> _controller = Completer<WebViewController>();
@override
void initState() {
// TODO: implement initState
super.initState();
if(Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
}
@override
Widget build(BuildContext context,) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(statusBarColor: Color(0xFFA51234)));
return MaterialApp(
home: Scaffold(
body: SafeArea(child: Container(child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(children: [
IconButton(
onPressed: () => Navigator.of(context).pop(),
icon: Icon(Icons.arrow_back, color:Colors.black),
alignment: Alignment.topLeft,)
],),
Container(
padding: EdgeInsets.all(10.0),
child: progress < 1.0 ? LinearProgressIndicator(value: progress) : Container(),
),
Expanded(child: WebView(
initialUrl: context.read(urlState).state,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) {
_controller.complete(controller);
},
),)
],),)),),
);
}
}
I got an error on (HomePage)
return Builder(builder: (context){
return GestureDetector(
onTap: () {
context.read(```
Too many positional arguments: 0 expected, but 1 found.
Try removing the extra arguments.).state = item.url;
Navigator.pushNamed(context, '/detail');
},
And
Expanded(child: ListView.builder(
itemCount: contentList.length,
itemBuilder:(context, index) {
return GestureDetector(onTap: (){
context.read(**urlState**).state = contentList[index].url;
Navigator.pushNamed(context, '/detail');
},
(NewsDetail)
Expanded(child: WebView(
initialUrl: context.read(**urlState**).state,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) {
\_controller.complete(controller);
},
),
)
This Error I got
Too many positional arguments: 0 expected, but 1 found.
Try removing the extra arguments.
This code urlState
import 'package:flutter_riverpod/flutter_riverpod.dart';
final urlState = StateProvider(((ref) =\> ''));
Please Help Me To Fix This Error
I tried adding import 'package:flutter_bloc/flutter_bloc.dart'; because the "context.read" have a red underline. And then, the "urlState" have a red underline.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
