Fix Android group browser scrolling
This commit is contained in:
@@ -5624,21 +5624,11 @@ func (u *ui) groupBar(gtx layout.Context) layout.Dimensions {
|
|||||||
if atRoot {
|
if atRoot {
|
||||||
u.phoneGroupBrowserExpanded = true
|
u.phoneGroupBrowserExpanded = true
|
||||||
}
|
}
|
||||||
return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
|
children := make([]layout.FlexChild, 0, len(groups))
|
||||||
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
for i := range groups {
|
||||||
if len(groups) == 0 {
|
|
||||||
return layout.Dimensions{}
|
|
||||||
}
|
|
||||||
maxY := gtx.Dp(unit.Dp(168))
|
|
||||||
if gtx.Constraints.Max.Y > maxY {
|
|
||||||
gtx.Constraints.Max.Y = maxY
|
|
||||||
}
|
|
||||||
if gtx.Constraints.Min.Y > gtx.Constraints.Max.Y {
|
|
||||||
gtx.Constraints.Min.Y = gtx.Constraints.Max.Y
|
|
||||||
}
|
|
||||||
return material.List(u.theme, &u.groupList).Layout(gtx, len(groups), func(gtx layout.Context, i int) layout.Dimensions {
|
|
||||||
idx := i
|
idx := i
|
||||||
name := groups[i]
|
name := groups[i]
|
||||||
|
children = append(children, layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
||||||
return layout.Inset{Bottom: unit.Dp(6)}.Layout(gtx, func(gtx layout.Context) layout.Dimensions {
|
return layout.Inset{Bottom: unit.Dp(6)}.Layout(gtx, func(gtx layout.Context) layout.Dimensions {
|
||||||
for u.groupClicks[idx].Clicked(gtx) {
|
for u.groupClicks[idx].Clicked(gtx) {
|
||||||
u.state.EnterGroup(name)
|
u.state.EnterGroup(name)
|
||||||
@@ -5647,9 +5637,9 @@ func (u *ui) groupBar(gtx layout.Context) layout.Dimensions {
|
|||||||
}
|
}
|
||||||
return tonedButton(gtx, u.theme, &u.groupClicks[idx], name)
|
return tonedButton(gtx, u.theme, &u.groupClicks[idx], name)
|
||||||
})
|
})
|
||||||
})
|
}))
|
||||||
}),
|
}
|
||||||
)
|
return layout.Flex{Axis: layout.Vertical}.Layout(gtx, children...)
|
||||||
}
|
}
|
||||||
return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
|
return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
|
||||||
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
||||||
|
|||||||
@@ -775,6 +775,37 @@ func TestUIPhoneGroupBrowserToggleDoesNotChangeCurrentGroupToolsState(t *testing
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUIPhoneGroupBarDoesNotClampScrollableContentHeight(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
u := newUIWithModel("phone", vault.Model{
|
||||||
|
Groups: [][]string{
|
||||||
|
{"Crew"},
|
||||||
|
{"Crew", "One"},
|
||||||
|
{"Crew", "Two"},
|
||||||
|
{"Crew", "Three"},
|
||||||
|
{"Crew", "Four"},
|
||||||
|
{"Crew", "Five"},
|
||||||
|
{"Crew", "Six"},
|
||||||
|
{"Crew", "Seven"},
|
||||||
|
{"Crew", "Eight"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
u.setCurrentPath([]string{"Crew"})
|
||||||
|
|
||||||
|
ops := new(op.Ops)
|
||||||
|
gtx := layout.Context{
|
||||||
|
Ops: ops,
|
||||||
|
Constraints: layout.Exact(image.Pt(1080, 2400)),
|
||||||
|
}
|
||||||
|
|
||||||
|
dims := u.groupBar(gtx)
|
||||||
|
minOldCap := gtx.Dp(unit.Dp(220))
|
||||||
|
if dims.Size.Y <= minOldCap {
|
||||||
|
t.Fatalf("groupBar() phone height = %d, want > %d to avoid nested-scroll clamp", dims.Size.Y, minOldCap)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestUIPhoneStartsWithGroupToolsCollapsed(t *testing.T) {
|
func TestUIPhoneStartsWithGroupToolsCollapsed(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user