browser.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:flutter/widgets.dart';
  2. import 'package:get/get.dart';
  3. import 'package:gmus_mobile/components/albums.dart';
  4. import './artists.dart';
  5. class Browser extends StatefulWidget {
  6. @override
  7. _BrowserWidgetState createState() => _BrowserWidgetState();
  8. }
  9. class _BrowserWidgetState extends State<Browser> {
  10. PageController pageController = PageController();
  11. void _jumpToPage(int page) {
  12. pageController.animateToPage(page, duration: Duration(milliseconds: 500), curve: Curves.ease);
  13. }
  14. void _jumpToAlbums() {
  15. this._jumpToPage(1);
  16. }
  17. void _jumpToSongs() {
  18. this._jumpToPage(2);
  19. }
  20. RxString selectedArtist;
  21. RxString selectedAlbum;
  22. void onSelectArtist(String artist) {
  23. print("onSelectArtist called $artist");
  24. this.selectedArtist = artist.obs;
  25. this._jumpToAlbums();
  26. }
  27. void onSelectAlbum(String artist, String album) {
  28. this.selectedAlbum = album.obs;
  29. this._jumpToSongs();
  30. }
  31. @override
  32. Widget build(BuildContext context) {
  33. return PageView(
  34. controller: pageController,
  35. children: <Widget>[
  36. Artists(onSelect: this.onSelectArtist),
  37. Obx(() => Albums(artist: this.selectedArtist.value, onSelect: this.onSelectAlbum)),
  38. ],
  39. pageSnapping: true,
  40. );
  41. }
  42. }