【发布时间】:2020-11-14 05:40:25
【问题描述】:
你好朋友我正在创建学习应用程序我在这里需要一点帮助我有数组列表当任何人单击任何单词时它会转到下一个 sacreen 用户转到下一个 sacreen 而不是用户回到前一个 sacreen 以获得下一个单词我希望用户单击下一个按钮或 pervious 按钮显示下一个单词 pervious word on the same sacreen.instead 回到我的前一个单词如何可能并记住数组单词必须从右左显示,因为它是希伯来语语言应用程序,这里是我的图像和代码?
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'Sounds.dart';
class Kamiz extends StatefulWidget {
@override
_KamizState createState() => _KamizState();
}
class _KamizState extends State<Kamiz> {
var kamiz=['פָּרָ','חָםָ','נָבָּ','עָוָ','אָםָ','מָרָ','כָּכָּ','מָמָ','פָּפָּ','בָּרָ','קָרָ','דָּרָ','וָרָ','הָרָ','תָּרָ','בָּם','כָּלָ','כָּר','שָׁלָ','סָרָ','כָּכָּ','אָםָ','חָםָ','אָל','כָּלָ'];
var list=['57.wav','48.wav','47.wav','46.wav','45.wav','55.wav','54.wav','53.wav','51.wav','50.wav','60.wav','61.wav','58.wav',
'57.wav','61.wav','65.wav','64.wav','63.wav','62.wav','missing.wav','70.wav','69.wav','48.wav','67.wav','66.wav'
];
var urduvowel=['پارا','خاما','نابا','عاوا','آما','مارا','کاکا','ماما','پاپا','بارا','قارا','دارا','وارا','ہارا','تارا','باما',
'کالا','کارا','شالا','سارا','کاکا','آما','خاما','الا','کالا'];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'Kamatz',style:GoogleFonts.davidLibre(
fontSize: 24,
fontWeight: FontWeight.bold,
)),
),
body: GridView.builder(
itemCount: kamiz.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 5,
),
itemBuilder: (BuildContext context,int index){
return Padding(
padding:EdgeInsets.all(10.0),
child: GestureDetector(
onTap: () {
Navigator.push (
context,
MaterialPageRoute(builder: (context) => Sounds(kamiz[index],list[index],urduvowel[index])),
);
},
child: Container(
decoration: BoxDecoration(
color: Colors.black12,
border: Border.all(color: Colors.blueAccent)
),
child: Center(
child: Directionality(
textDirection: TextDirection.rtl,
child: Column(
children: [
Text(kamiz[index],style:GoogleFonts.davidLibre(
fontSize: 16,
fontWeight: FontWeight.bold,
)),
Text(urduvowel[index],style:GoogleFonts.davidLibre(
fontSize: 16,
fontWeight: FontWeight.bold,
)),
],
),
),
),
),
),
) ;
}
)
);
}
}
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter_cache_manager_firebase/flutter_cache_manager_firebase.dart';
class Sounds extends StatefulWidget {
@override
_SoundsState createState() => _SoundsState();
String word;
var sounds;
var urdu;
Sounds(this.word,this.sounds,this.urdu);
}
class _SoundsState extends State<Sounds> {
final Completer<WebViewController> _controller = Completer<WebViewController>();
var audio;
AudioPlayer audioPlayer = AudioPlayer();
@override
void initState() {
super.initState();
audio='''
<!DOCTYPE html>
<html>
<body>
<audio id="englishAudio">
<source src="https://firebasestorage.googleapis.com/v0/b/hebrewapp-453d2.appspot.com/o/practicesounds%2F${widget.sounds}?alt=media&token=603fc7fc-6794-424d-84c6-3627d0d81d68" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<button onclick="UrduAudio()" type="button">Listen Word</button>
<button onclick="pauseAudio()" type="button">Pause Audio</button>
<script>
var x = document.getElementById("englishAudio");
var y = document.getElementById("urduAudio");
function UrduAudio() {
x.play();
}
function englishAudio() {
y.play();
}
function pauseAudio() {
x.pause();
y.pause();
}
</script>
</body>
</html>
''';
}
@override
Widget build(BuildContext context) {
@override
String audioplay='''
<!DOCTYPE html>
<html>
<body>
<audio id="englishAudio">
<source src="https://firebasestorage.googleapis.com/v0/b/hebrewapp-453d2.appspot.com/o/practicesounds%2F${widget.sounds}?alt=media&token=603fc7fc-6794-424d-84c6-3627d0d81d68" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<button onclick="UrduAudio()" type="button">Listen Word</button>
<button onclick="pauseAudio()" type="button">Pause Audio</button>
<script>
var x = document.getElementById("englishAudio");
var y = document.getElementById("urduAudio");
function UrduAudio() {
x.play();
}
function englishAudio() {
y.play();
}
function pauseAudio() {
x.pause();
y.pause();
}
</script>
</body>
</html>
''';
return Scaffold(
appBar: AppBar(
title: Text(
'Kamatz',style:GoogleFonts.davidLibre(
fontSize: 24,
fontWeight: FontWeight.bold,
)),
),
body: Center(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
widget.urdu+'/'+widget.word,style:GoogleFonts.davidLibre(
fontSize: 70,
)),
SizedBox(height: 30,),
Center(
child: Padding(
padding:EdgeInsets.only(left: 90),
child: Container(
constraints: BoxConstraints(maxHeight: 100,),
child: WebView(
initialUrl:Uri.dataFromString(audio, mimeType: 'text/html').toString(),
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
}, //
)
),
),
),
Padding(
padding:EdgeInsets.only(left: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('PERV'),
Icon(
Icons.arrow_left,
size: 70.0,
),
Icon(
Icons.arrow_right,
size: 70.0,
),
Text('Next'),
],
),
)
],
),
),
),
);
}
}
【问题讨论】: