Chromium Code Reviews| Index: sky/sdk/lib/framework/components2/fixed_height_scrollable.dart |
| diff --git a/sky/sdk/lib/framework/components2/fixed_height_scrollable.dart b/sky/sdk/lib/framework/components2/fixed_height_scrollable.dart |
| index e3becda0128d251a40d925fc39ba52b8e2952ec5..758ca8454ac25010645cbacc732154d298a41368 100644 |
| --- a/sky/sdk/lib/framework/components2/fixed_height_scrollable.dart |
| +++ b/sky/sdk/lib/framework/components2/fixed_height_scrollable.dart |
| @@ -10,16 +10,21 @@ import 'package:vector_math/vector_math.dart'; |
| import 'scrollable.dart'; |
| abstract class FixedHeightScrollable extends Scrollable { |
| + |
| FixedHeightScrollable({ this.itemHeight, Object key }) : super(key: key) { |
| assert(itemHeight != null); |
| } |
| + double itemHeight; |
| + |
| + void syncFields(FixedHeightScrollable source) { |
| + itemHeight = source.itemHeight; |
| + super.syncFields(source); |
| + } |
| + |
| ScrollBehavior createScrollBehavior() => new OverscrollBehavior(); |
| OverscrollBehavior get scrollBehavior => super.scrollBehavior as OverscrollBehavior; |
| - double _height; |
| - final double itemHeight; |
| - |
| int _itemCount = 0; |
| int get itemCount => _itemCount; |
| void set itemCount (int value) { |
| @@ -29,6 +34,7 @@ abstract class FixedHeightScrollable extends Scrollable { |
| } |
| } |
| + double _height; |
| void _handleSizeChanged(Size newSize) { |
| setState(() { |
| _height = newSize.height; |
| @@ -38,17 +44,17 @@ abstract class FixedHeightScrollable extends Scrollable { |
| UINode buildContent() { |
| var itemNumber = 0; |
|
abarth-chromium
2015/06/10 17:07:58
s/itemNumber/itemShowNumber/
|
| - var itemCount = 0; |
| + var itemShowCount = 0; |
| Matrix4 transform = new Matrix4.identity(); |
| if (_height != null && _height > 0.0) { |
| if (scrollOffset < 0.0) { |
| double visibleHeight = _height + scrollOffset; |
| - itemCount = (visibleHeight / itemHeight).round() + 1; |
| + itemShowCount = (visibleHeight / itemHeight).round() + 1; |
| transform.translate(0.0, -scrollOffset); |
| } else { |
| - itemCount = (_height / itemHeight).ceil() + 1; |
| + itemShowCount = (_height / itemHeight).ceil() + 1; |
| double alignmentDelta = -scrollOffset % itemHeight; |
| if (alignmentDelta != 0.0) |
| alignmentDelta -= itemHeight; |
| @@ -70,7 +76,7 @@ abstract class FixedHeightScrollable extends Scrollable { |
| child: new Transform( |
| transform: transform, |
| child: new BlockContainer( |
| - children: buildItems(itemNumber, itemCount)) |
| + children: buildItems(itemNumber, itemShowCount)) |
| ) |
| ) |
| ) |
| @@ -78,4 +84,5 @@ abstract class FixedHeightScrollable extends Scrollable { |
| } |
| List<UINode> buildItems(int start, int count); |
| + |
| } |