FlickPager.qml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import QtQuick 2.0
  2. Item {
  3. id: root
  4. property Component content: null
  5. QtObject {
  6. id: d
  7. property Item flickItem: null
  8. }
  9. Flickable {
  10. id: flick
  11. anchors.top: arrowUp.bottom
  12. anchors.bottom:arrowDown.top
  13. anchors.left: parent.left
  14. anchors.right: parent.right
  15. contentWidth: d.flickItem.width
  16. contentHeight: d.flickItem.height
  17. }
  18. FlickPagerArrow {
  19. id: arrowUp
  20. anchors.top: parent.top
  21. source: "arrow-141-16"
  22. active: flick.contentY > 0
  23. onClicked: {
  24. flick.contentY -= (flick.contentY - flick.height) < 0 ? flick.contentY : flick.height
  25. }
  26. gradient: Gradient {
  27. GradientStop { position: 0.0; color: "#ffffffff" }
  28. GradientStop { position: 0.8; color: "#ffffffff" }
  29. GradientStop { position: 1.0; color: "#00ffffff" }
  30. }
  31. }
  32. FlickPagerArrow {
  33. id: arrowDown
  34. anchors.bottom: parent.bottom
  35. source: "arrow-203-16"
  36. active: flick.contentY < (flick.contentHeight - flick.height)
  37. onClicked: {
  38. flick.contentY += (flick.contentY + flick.height*2) >= flick.contentHeight ? flick.contentHeight - flick.contentY - flick.height : flick.height
  39. }
  40. gradient: Gradient {
  41. GradientStop { position: 0.0; color: "#00ffffff" }
  42. GradientStop { position: 0.2; color: "#ffffffff" }
  43. GradientStop { position: 1.0; color: "#ffffffff" }
  44. }
  45. }
  46. onContentChanged: {
  47. if(d.flickItem != null) {
  48. d.flickItem.destroy()
  49. }
  50. if(content != null) {
  51. d.flickItem = content.createObject(flick.contentItem)
  52. }
  53. }
  54. }