iOS 中的 React Native 导航标题高度

问题描述 投票:0回答:1

我在我的 React Native 应用程序中呈现自定义标头时遇到问题。在 Android 上它工作得完美无缺,我有设计师想要的标题。但在 ios 中,标题很奇怪。就好像它的高度是原始标题高度(不是我的自定义标题高度),但它的子项受到自定义标题高度的影响,使其内容泄漏到主要组件(标题下方)。如果我在自定义高度中手动设置高度,它不会更改 VISIBLE HEADER CONTAINER,但它的子项会受到影响。就像它渲染原始标题,然后在其上渲染我的自定义标题。

我已经放置了 SafeAreaView 来包裹应用程序,没有任何改变。如果有人可以帮忙,非常感谢!

这就是 Android 和 ios 上的样子:

这是片段:

import React, { useState } from "react"
import { Avatar, IconButton, Menu, Text } from "react-native-paper"
import { useUser } from "../../hooks/useUser"
import { Pressable, View } from "react-native"
import { useNavigation } from "@react-navigation/native"
import { NotificationItem } from "./NotificationItem"
import placeholders from "../../tools/placeholders"
import { TrianguloMiseravel } from "../TrianguloMiseravel"

interface HeaderProps {}

export const Header: React.FC<HeaderProps> = ({}) => {
    const navigation = useNavigation<any>()
    const { user } = useUser()

    const [showNotifications, setShowNotifications] = useState(false)

    return user ? (
        <View
            style={{
                flexDirection: "row",
                paddingVertical: 15,
                alignItems: "center",
                justifyContent: "space-between",
                width: "100%",
                paddingRight: 30,
            }}
        >
            <View style={{ flexDirection: "row", alignItems: "center", gap: 10 }}>
                <Pressable onPress={() => navigation.navigate("setup")}>
                    <Avatar.Image size={50} source={user.image ? { uri: user.image } : placeholders.avatar} />
                </Pressable>
                <Text variant="titleLarge">{user.name}</Text>
            </View>
            <Menu
                visible={showNotifications}
                onDismiss={() => setShowNotifications(false)}
                anchorPosition="bottom"
                anchor={<IconButton icon={"bell-outline"} onPress={() => setShowNotifications(true)} />}
                contentStyle={{ width: "100%" }}
                style={{ width: "93%" }}
            >
                <TrianguloMiseravel />
                <NotificationItem />
                <NotificationItem />
                <NotificationItem />
            </Menu>
        </View>
    ) : null
}
react-native react-native-navigation
1个回答
0
投票

我找到了解决方案,如果有人遇到这个问题:

错误是我将自定义标头组件传递给导航器的屏幕选项道具中的“headerTitle”选项而不是“header”。

出于某种原因,在 android 上看起来不错,但在 ios 上,它仅将自定义标头呈现为标题,而不是整个组件。而且很有道理哈哈

© www.soinside.com 2019 - 2024. All rights reserved.