feat:refact SliderDemo
This commit is contained in:
		| @@ -1,18 +1,7 @@ | ||||
|  | ||||
| import { Group, Panel, Text, text, gravity, Color, Stack, LayoutSpec, vlayout, hlayout, scroller, IVLayout, IHLayout, layoutConfig } from "doric"; | ||||
| import { colors } from "./colorutils"; | ||||
|  | ||||
| const colors = [ | ||||
|     "#70a1ff", | ||||
|     "#7bed9f", | ||||
|     "#ff6b81", | ||||
|     "#a4b0be", | ||||
|     "#f0932b", | ||||
|     "#eb4d4b", | ||||
|     "#6ab04c", | ||||
|     "#e056fd", | ||||
|     "#686de0", | ||||
|     "#30336b", | ||||
| ].map(e => Color.parse(e)) | ||||
|  | ||||
| function box(idx = 0) { | ||||
|     return (new Stack).also(it => { | ||||
|   | ||||
| @@ -1,53 +1,48 @@ | ||||
| import { Group, Panel, List, text, gravity, Color, Stack, LayoutSpec, list, NativeCall, listItem, log, vlayout, Gravity, hlayout, slider, slideItem } from "doric"; | ||||
| const colors = [ | ||||
|     "#f0932b", | ||||
|     "#eb4d4b", | ||||
|     "#6ab04c", | ||||
|     "#e056fd", | ||||
|     "#686de0", | ||||
|     "#30336b", | ||||
| import { Group, Panel, List, text, gravity, Color, Stack, LayoutSpec, list, NativeCall, listItem, log, vlayout, Gravity, hlayout, slider, slideItem, image, layoutConfig } from "doric"; | ||||
| import { colors } from "./colorutils"; | ||||
|  | ||||
| const imageUrls = [ | ||||
|     'http://b.hiphotos.baidu.com/image/pic/item/908fa0ec08fa513db777cf78376d55fbb3fbd9b3.jpg', | ||||
|     'http://f.hiphotos.baidu.com/image/pic/item/0e2442a7d933c8956c0e8eeadb1373f08202002a.jpg', | ||||
|     'http://f.hiphotos.baidu.com/image/pic/item/b151f8198618367aa7f3cc7424738bd4b31ce525.jpg', | ||||
|     'http://b.hiphotos.baidu.com/image/pic/item/0eb30f2442a7d9337119f7dba74bd11372f001e0.jpg', | ||||
|     'http://calonye.com/wp-content/uploads/2015/08/0-wx_fmtgiftpwebpwxfrom5wx_lazy1-9.gif', | ||||
|     'http://hbimg.b0.upaiyun.com/ca29ea125b7f2d580f573e48eb594b1ef509757f34a08-m0hK45_fw658', | ||||
|     'https://misc.aotu.io/ONE-SUNDAY/SteamEngine.png', | ||||
| ] | ||||
| @Entry | ||||
| class SliderPanel extends Panel { | ||||
|     build(rootView: Group): void { | ||||
|         rootView.addChild(vlayout([ | ||||
|             text({ | ||||
|                 text: "SliderDemo", | ||||
|                 text: "Gallery", | ||||
|                 layoutConfig: { | ||||
|                     widthSpec: LayoutSpec.AT_MOST, | ||||
|                     heightSpec: LayoutSpec.EXACTLY, | ||||
|                 }, | ||||
|                 textSize: 30, | ||||
|                 textColor: Color.parse("#535c68"), | ||||
|                 bgColor: Color.parse("#dff9fb"), | ||||
|                 textColor: Color.WHITE, | ||||
|                 bgColor: colors[1], | ||||
|                 textAlignment: gravity().center(), | ||||
|                 height: 50, | ||||
|             }), | ||||
|             slider({ | ||||
|                 itemCount: 100, | ||||
|                 renderPage: (idx) => { | ||||
|                     return slideItem(text({ | ||||
|                         layoutConfig: { | ||||
|                             widthSpec: LayoutSpec.AT_MOST, | ||||
|                             heightSpec: LayoutSpec.EXACTLY, | ||||
|                             alignment: gravity().center(), | ||||
|                         }, | ||||
|                         text: `Page At Line ${idx}`, | ||||
|                         textAlignment: gravity().center(), | ||||
|                         textColor: Color.parse("#ffffff"), | ||||
|                         textSize: 20, | ||||
|                         height: 300, | ||||
|                         bgColor: Color.parse(colors[idx % colors.length]), | ||||
|                     }).also(it => { | ||||
|                     return slideItem(image({ | ||||
|                         imageUrl: imageUrls[idx % imageUrls.length], | ||||
|                         layoutConfig: layoutConfig().wrap().a(gravity().center()), | ||||
|                     })).also(it => { | ||||
|                         let start = idx | ||||
|                         it.onClick = () => { | ||||
|                             it.bgColor = Color.parse(colors[++start % colors.length]) | ||||
|                             it.bgColor = (colors[++start % colors.length]) | ||||
|                         } | ||||
|                     })) | ||||
|                     }) | ||||
|                 }, | ||||
|                 layoutConfig: { | ||||
|                     widthSpec: LayoutSpec.AT_MOST, | ||||
|                     heightSpec: LayoutSpec.WRAP_CONTENT, | ||||
|                     weight: 1, | ||||
|                 }, | ||||
|             }), | ||||
|         ]).also(it => { | ||||
|   | ||||
							
								
								
									
										14
									
								
								demo/src/colorutils.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								demo/src/colorutils.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| import { Color } from "doric"; | ||||
|  | ||||
| export const colors = [ | ||||
|     "#70a1ff", | ||||
|     "#7bed9f", | ||||
|     "#ff6b81", | ||||
|     "#a4b0be", | ||||
|     "#f0932b", | ||||
|     "#eb4d4b", | ||||
|     "#6ab04c", | ||||
|     "#e056fd", | ||||
|     "#686de0", | ||||
|     "#30336b", | ||||
| ].map(e => Color.parse(e)) | ||||
		Reference in New Issue
	
	Block a user