add sticky header demo
This commit is contained in:
parent
d143941b00
commit
b548b8f02c
63
doric-demo/src/StickyHeaderDemo.ts
Normal file
63
doric-demo/src/StickyHeaderDemo.ts
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import { Group, Panel, vlayout, scroller, text, layoutConfig, stack, Color, View, Scroller } from "doric";
|
||||||
|
|
||||||
|
const colors = [
|
||||||
|
"#70a1ff",
|
||||||
|
"#7bed9f",
|
||||||
|
"#ff6b81",
|
||||||
|
"#a4b0be",
|
||||||
|
"#f0932b",
|
||||||
|
"#eb4d4b",
|
||||||
|
"#6ab04c",
|
||||||
|
"#e056fd",
|
||||||
|
"#686de0",
|
||||||
|
"#30336b",
|
||||||
|
].map(e => Color.parse(e))
|
||||||
|
|
||||||
|
function titleBar() {
|
||||||
|
return text({
|
||||||
|
text: "This is a sticky header",
|
||||||
|
layoutConfig: layoutConfig().mostWidth().justHeight(),
|
||||||
|
height: 50,
|
||||||
|
backgroundColor: Color.YELLOW
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entry
|
||||||
|
export class StickyHeaderDemo extends Panel {
|
||||||
|
build(root: Group) {
|
||||||
|
let stickyHeader: View
|
||||||
|
let scrollerView: Scroller
|
||||||
|
stack(
|
||||||
|
[
|
||||||
|
scroller(
|
||||||
|
vlayout(
|
||||||
|
[
|
||||||
|
stack([], {
|
||||||
|
layoutConfig: layoutConfig().mostWidth().justHeight(),
|
||||||
|
height: 80,
|
||||||
|
backgroundColor: Color.GRAY,
|
||||||
|
}),
|
||||||
|
titleBar(),
|
||||||
|
...new Array(20).fill(0).map((_, index) => stack([], {
|
||||||
|
layoutConfig: layoutConfig().mostWidth().justHeight(),
|
||||||
|
height: 80,
|
||||||
|
backgroundColor: colors[index % colors.length]
|
||||||
|
})),
|
||||||
|
],
|
||||||
|
{
|
||||||
|
layoutConfig: layoutConfig().mostWidth().fitHeight(),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
{
|
||||||
|
layoutConfig: layoutConfig().most(),
|
||||||
|
onScroll: (offset) => {
|
||||||
|
stickyHeader.hidden = offset.y <= 80
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
stickyHeader = titleBar().apply({ hidden: true }),
|
||||||
|
],
|
||||||
|
{
|
||||||
|
layoutConfig: layoutConfig().most(),
|
||||||
|
}).in(root)
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user