我的解决方案是: 在一个自定义组件里面,定义一个父view,这个view高度是根据statusBarHeight来计算的,然后再在这个view里面定义fixed的一个层,完美解决文本流问题和一直fixed问题
自定义导航栏问题写好自定义导航栏后,设定位为 topbar{ position: fixed; width: 100%; left: 0; top: 0; } 这样就可以浮在顶部了 然后就是所有页面都要padding-top一定像素 page{ padding-top:128rpx} 但这样是有问题的,一般手机状态栏高度为20px,则没问题 但是类型iPhone X这些刘海屏状态栏高度为44px,则上面应该是 [代码]padding-top[代码][代码]:[代码][代码]176[代码][代码]rpx[代码] 但是在css中无法动态知道设备的状态栏高度啊 难道要在每个页面去获取状态栏高度,然后再在页面设置每个页面的padding-top高度么? 我的页面少说也有个30多个啊。 有没有更好的解决方法? 理想的解决方法是: 在自定义导航栏组件内获取状态栏高度, 然后再在去统一设置page Dom的css样式。 然后每个页面引入这个自定义导航栏组件。 问题是没有获取page和设置dom样式的接口啊
2018-09-24刚刚试过用 for 列表生成自定义控件,用的是官方示例“自定义组件组件间关系示例”来修改的。自定义组件的 linkChanged 事件也没有触发。 index.js [代码]const app = getApp()[代码] [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]aaa:[[代码][代码] [代码][代码]'bobo'[代码][代码],[代码][代码]'mimi'[代码][代码],[代码][代码]'nini'[代码][代码] [代码][代码]][代码][代码] [代码][代码]},[代码][代码] [代码][代码]onLoad: [代码][代码]function[代码] [代码]() {[代码] [代码] [代码][代码]var[代码] [代码]that=[代码][代码]this[代码][代码];[代码] [代码] [代码][代码]setTimeout([代码][代码]function[代码][代码](){[代码] [代码] [代码][代码]that.setData({aaa:[[代码][代码]'mimi'[代码][代码],[代码][代码]'nini'[代码][代码],[代码][代码]'bobo'[代码][代码]]});[代码][代码] [代码][代码]console.log([代码][代码]'change'[代码][代码]);[代码] [代码] [代码][代码]},5000);[代码] [代码] [代码][代码]},[代码][代码]})[代码] index.wxml [代码]<[代码][代码]custom-ul[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]custom-li[代码] [代码]wx:for[代码][代码]=[代码][代码]"{{aaa}}"[代码] [代码]wx:key[代码][代码]=[代码][代码]"{{item}}"[代码] [代码]data-id[代码][代码]=[代码][代码]"{{item}}"[代码][代码]> item</[代码][代码]custom-li[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]custom-li[代码][代码]> item 2 </[代码][代码]custom-li[代码][代码]>[代码][代码]</[代码][代码]custom-ul[代码][代码]>[代码]
自定义组件的生命周期moved时什么条件下触发的?- 需求的场景描述(希望解决的问题) 想测试下自定义组件生命周期moved是在什么情况下才会执行的。 文档中说自定义组件在节点树的位置变化了的时候会触发,试过如下代码: <page> <view wx:if="{{flag}}">111</view> <my-component/> </page> 把flag的值从true变为false,view 不在节点树上,my-component的位置应该是改变了,但my-component自定义组件里面的生命周期moved并没有触发。 - 希望提供的能力
2018-09-24