【问题标题】:show next or previous Array word on onclick?在onclick上显示下一个或上一个数组单词?
【发布时间】:2020-11-14 05:40:25
【问题描述】:

你好朋友我正在创建学习应用程序我在这里需要一点帮助我有数组列表当任何人单击任何单词时它会转到下一个 sacreen 用户转到下一个 sacreen 而不是用户回到前一个 sacreen 以获得下一个单词我希望用户单击下一个按钮或 pervious 按钮显示下一个单词 pervious word on the same sacreen.instead 回到我的前一个单词如何可能并记住数组单词必须从右左显示,因为它是希伯来语语言应用程序,这里是我的图像和代码?

enter image description here

enter image description here

  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'),
                 ],
               ),
             )
            ],
         
         
          ),
        ),
      ),
    );
  }


}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    上一个使用-,下一个使用+

    var kamiz=['פָּרָ','חָםָ','נָבָּ','עָוָ','אָםָ','מָרָ','כָּכָּ','מָמָ','פָּפָּ','בָּרָ','קָרָ','דָּרָ','וָרָ','הָרָ','תָּרָ','בָּם','כָּלָ','כָּר','שָׁלָ','סָרָ','כָּכָּ','אָםָ','חָםָ','אָל','כָּלָ'];
    int index = 0;
    int prev = kamiz[index-1];
    int next = kamiz[index+1];
    

    确保检查边界。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多