(微信半屏小程序导航栏样式问题)微信小程序能动态修改navigationStyle吗?

【已解决】【补充】emmm,这个是在开发者工具上会出现的问题,到真机上试了没问题了😂

背景:在做一个微信小程序,被其他小程序半屏打开,打开之后首页(图1)样式正常,跳转到内部页面(图2)后上面多出来一截。。
图1:
image.png
图2:
image.png

首页使用的navigationStyle是custom,内部页面使用的是default;
将首页修改为default之后,就没有多出来的一截了,所以应该是因为navidationStyle导致的。
所以想问问大家有办法能动态修改这个navigationStyle吗,或者有其他的方法可以解决这个问题。😂

阅读 3.2k
1 个回答

navigationStyle 设置为 custom 时,需要自己控制导航栏内容,所以小程序半屏启动时,应该去除自定义导航栏中的 状态栏 区域。

半屏小程序环境判断

开发者可以通过调用 wx.getEnterOptionsSync 读取 apiCategory 参数,当值为 embedded 时,可以判断此时小程序被半屏打开。

自定义导航栏组件示例如下(以微信小程序原生开发举例):

<view class="demo-navbar">
  <!-- 状态栏 -->
  <view class="demo-navbar__status-bar {{ stateless ? 'stateless' : '' }}"></view>

  <!-- 标题栏栏 -->
  <view class="demo-navbar__title-bar">
    <text class="demo-navbar__title-bar__text">{{ title }}</text>
  </view>
</view>
Component({
  properties: {
    title: {
      type: String,
      value: ''
    }
  },
  data: {
    stateless: false
  },
  lifetimes: {
    attached() {
      const options = wx.getEnterOptionsSync();

      this.setData({
        stateless: ["embedded", "browseOnly"].indexOf(options.apiCategory) >= 0
      });
    }
  }
})
.demo-navbar__status-bar.stateless {
  height: 0 !important;
  overflow: hidden;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题