收藏
回答

如何让一个试图占满整个屏幕,距离底部10rpx?

如问题描述:我想让红色的块离顶部导航条(黄色)10rpx,底部的tabbar10rpx(不生效)。如下图:

代码如下:

<navigation-bar title="小程序" background="#FDD243" color="white" back="{{false}}"></navigation-bar>
<view style="height: 100vh; display: flex; flex-direction: column; background: red; margin-top: 10rpx; margin-bottom: 10rpx;">
</view> 


我想到的方式一:

把红色的块`margin-bottom`设置为tabbar的高度。在获取tabbar高度之前,无论如何改`margin-bottom`都不工作,可能是height是100vh或者100%的原因?放弃这个。

第二个方式就是计算:

屏幕高度 - 导航条高度 - tabBar的高度

看了文档 wx.getWindowInfo,好像没有办法知道tabBar的高度。

难道是这个windowHeight就是我想要的数值?试试看,计算出来是688。

const windowInfo = wx.getWindowInfo()
const height = windowInfo.windowHeight * 750 / windowInfo.screenWidth


手工量了下,仍旧是包含tabBar的距离。

所以有没有什么方法能准确的做到这一点呢?

编辑一

<navigation-bar title="小程序" background="#FDD243" color="white" back="{{false}}"></navigation-bar>

<view style="height: 100%; display: flex; flex-direction: column; background: red; margin-top: 10rpx; margin-bottom: 10rpx;">

<view class="view1" style="width: 100%; height: 100%; background: green; flex: 1;"></view>

</view>


最后一次编辑于  05-14
回答关注问题邀请回答
收藏

2 个回答

  • H1HAO 🇨🇳
    H1HAO 🇨🇳
    05-14

    外层view100vh,然后给内边距10rpx大小随意不影响,然后内层写一个view宽高100%也就是红色板块,上面看你用bottom: 10rpx只是位置偏移了,这种是有问题的大小其实是没变的

    05-14
    有用
    回复 7
    • WillGO
      WillGO
      05-14
      这个我应该试过不行的。你的10rpx只是和外层的view是10rpx。实际是tabbar的高度+10 效果就对了。但是不知道tabbar的高度是关键。
      05-14
      回复
    • H1HAO 🇨🇳
      H1HAO 🇨🇳
      05-14回复WillGO
      如果不是自定义的tabbar你为什么需要知道他的高度
      05-14
      回复
    • WillGO
      WillGO
      05-14回复H1HAO 🇨🇳
      我要的效果就是我的内容距离tabbar 10rpx
      05-14
      回复
    • WillGO
      WillGO
      05-14回复H1HAO 🇨🇳
      你看我加了个margin-top 10rpx就是离顶部的导航栏的距离,而不是屏幕的最上端。想要下面一样的效果。
      05-14
      回复
    • H1HAO 🇨🇳
      H1HAO 🇨🇳
      05-14回复WillGO
      确实,我刚刚发现上下边距会增加到元素的外部而不是内部,感觉是除了问题
      05-14
      回复
    查看更多(2)
  • 一笑皆春
    一笑皆春
    05-13

    看了你的需求挺简单,你描述的有点复杂了,实在不行底部放在10rpx高度的占位VIew就是了

    05-13
    有用
    回复 7
    • WillGO
      WillGO
      05-13
      再次谢谢回复哈。
      10rpx也会被tabbar盖住啊。
      05-13
      回复
    • 一笑皆春
      一笑皆春
      05-13回复WillGO
      那是因为你给了100vh,你可以通过flex的弹性布局设置高度
      05-13
      回复
    • WillGO
      WillGO
      05-13
      试了一个方案
      position: fixed; bottom: 10rpx; 是可行的。
      05-13
      回复
    • WillGO
      WillGO
      05-13回复一笑皆春
      还请指教还有别的什么方案呢?能否说下思路?
      05-13
      回复
    • WillGO
      WillGO
      05-13回复一笑皆春
      “那是因为你给了100vh,你可以通过flex的弹性布局设置高度” ,问题是你怎么选择设置的高度呢
      05-13
      回复
    查看更多(2)
登录 后发表内容