Javascript 反应导航5:固定车头灯间距

Javascript 反应导航5:固定车头灯间距,javascript,react-native,react-navigation-v5,Javascript,React Native,React Navigation V5,这就是我的标题现在的样子: <Stack.Navigator initialRouteName="MenuRoute"> <Stack.Screen name={'MenuRoute'} component={Menu} options={({navigation, route}) => ({ headerTitle: () => (

这就是我的标题现在的样子:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>

这就是我想要实现的目标:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>

代码片段:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>

更新#2-添加组件代码片段:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>
代码片段(FacebookButtoncomponent):

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>

感谢@GuruparanGiritharan指出包装纸的问题

解决方案:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>
代码片段facebook按钮组件:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>
{…}
>
新标题:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>

说明:

<Stack.Navigator initialRouteName="MenuRoute">
        <Stack.Screen
          name={'MenuRoute'}
          component={Menu}
          options={({navigation, route}) => ({
            headerTitle: () => (
              <Text
                style={{
                  ...styles.headerTitle,
                }}>
                <Translatable value="Menu" />
              </Text>
            ),
            headerLeft: () => <AuthMenuPicker {...navigation} {...route} />,
            headerRight: () => (
              <View style={styles.row}>
                <FacebookButton {...navigation} {...route}/>
                <LanguagePicker />
              </View>
            ),
            headerStyle,
          })}
        />

        .....
        .....
        .....

</Stack.Navigator>

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
  }
});
const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    borderWidth: 1,
    borderColor:  'red',
  }
});
import React, { Component } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-paper';
import Entypo from 'react-native-vector-icons/Entypo';
import {FACEBOOK} from '../constants';

class FacebookButton extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() { }

    render() {
        return (
            <>
                <Button
                    //onPress={() => alert()}
                    onPress={() => {
                        this.props.navigate(
                            'FacebookMenuWebviewRoute',
                            {
                                url: FACEBOOK.FACEBOOK_PAGE,
                            },
                        );
                    }}
                >
                    <Entypo
                        name="facebook"
                        size={this.props.iconSize || 25}
                        style={{ ...styles.icon, ...this.props.iconStyle }}
                    />
                </Button>
            </>
        );
    }
}

export const styles = StyleSheet.create({
    icon: {
        color: 'white',
    },
});

export default FacebookButton;
    import React, {Component} from 'react';
    import {StyleSheet} from 'react-native';
    import {Menu, Button, withTheme} from 'react-native-paper';
    import Fontisto from 'react-native-vector-icons/Fontisto';
    import {IntlContext} from '../utility/context/Internationalization';
    
    class LanguagePicker extends Component {

      ...
      ...
      ...
    
      renderPicker() {
        return (
          <IntlContext.Consumer>
            {(context) => {
              return (
                <Menu
                  visible={this.state.showMenu}
                  onDismiss={() => this.showMenu(false)}
                  anchor={
                    <Button
                      onPress={() => this.showMenu(true)}
                      style={{
                        ...styles.menuButton,
                        ...this.props.menuButtonStyle,
                      }}>
                      <Fontisto
                        name="earth"
                        size={this.props.iconSize || 25}
                        style={{...styles.icon, ...this.props.iconStyle}}
                      />
                    </Button>
                  }>
                  {this.renderPickerItems(context)}
                </Menu>
              );
            }}
          </IntlContext.Consumer>
        );
      }
    
      render() {
        return <>{this.renderPicker()}</>;
      }
    }
    
    export const styles = StyleSheet.create({
      menuButton: {},
      icon: {
        color: 'white',
      },
    });
    
    export default withTheme(LanguagePicker);
 <TouchableOpacity
          style={{ justifyContent: 'center' }}
          onPress={() => { ... }
    >
              <Entypo
                 name="facebook"
                 size={this.props.iconSize || 25}
                 style={{ ...styles.icon, ...this.props.iconStyle }}
              />
</TouchableOpacity>
我使用的是
按钮
组件来自
react native paper
,该组件有自己的固定间距。这导致Facebook图标的间距过大


因此,,删除
按钮
组件,只需从
react native
中添加
touchablepacity
有助于减少标题上两个图标之间的空间。

您可以使用开发工具之类的工具检查空间分配并发布该图像吗?FacebookButton或LanguagePicker中有任何样式吗?@TheWellhopeer我不熟悉开发工具,但我添加了一个显示空间分配的图像。希望这和你要求的相似。@GuruparanGiritharan没有太多的样式。仅为不同图标添加颜色。我已经为这两个组件添加了代码片段。@GuruparanGiritharan谢谢。我刚刚通过移除
按钮
并在
facebook按钮
组件中使用
touchablepacity
解决了这个问题。我使用的是
按钮
来自
react native paper
,它包裹在Facebook图标周围,有自己的固定区域。