为了所谓的性能和自定义导航栏,选择使用skyline引擎,但它似乎对 display: grid支持的并不好,尝试了很多方法都不行,效果不理想(如果你有更好的方法,方便的话请分享给我一份,万分感谢)
最后没办法,直接用了官方推荐的grid-view,但grid-view不能拿来直接用,它需要在外层再套个scroll-view,以下代码实现了每行显示3个,但仍然有一个问题,就是它外层的scroll-view必须指定具体的高度,所以在不知道具体高度,或者不好设置固定高度的情况下,仍然还需要上其他手段,比如给scroll-view加scroll-y/scroll-x滚动条,或直接上js代码获取grid-view的尺寸,然后动态更新scroll-view的高度(我猜可以,没测试)。
html
<scroll-view type="custom" style="height: 240rpx;">
<grid-view type="aligned" main-axis-gap="10" cross-axis-gap="10" cross-axis-count="3">
<view class="grid-item" hover-class="hover-feedback-scale" bindtap="goToQuickService" data-service="duty-profile">
<text class="grid-icon">📋</text>
<text class="grid-name">个人档案</text>
</view>
<view class="grid-item" hover-class="hover-feedback-scale" bindtap="goToQuickService" data-service="duty-task">
<text class="grid-icon">🔔</text>
<text class="grid-name">任务提醒</text>
</view>
<view class="grid-item" hover-class="hover-feedback-scale" bindtap="goToQuickService" data-service="duty-checkin">
<text class="grid-icon">✅</text>
<text class="grid-name">签到打卡</text>
</view>
<view class="grid-item" hover-class="hover-feedback-scale" bindtap="goToQuickService" data-service="proposal-submit">
<text class="grid-icon">📝</text>
<text class="grid-name">提交议案</text>
</view>
<view class="grid-item" hover-class="hover-feedback-scale" bindtap="goToQuickService" data-service="proposal-query">
<text class="grid-icon">📊</text>
<text class="grid-name">进度查询</text>
</view>
<view class="grid-item" hover-class="hover-feedback-scale" bindtap="goToQuickService" data-service="internal">
<text class="grid-icon">🔒</text>
<text class="grid-name">内部交互</text>
</view>
</grid-view>
</scroll-view>