Shoutem更改默认fontFamily不起作用

时间:2017-09-05 12:02:43

标签: javascript react-native shoutem

我的新手反应原生!我在我的项目中使用了shoutem / ui。 修改默认fontFamily时遇到问题。这是我的代码,请检查然后帮我解决一下这个问题。 非常感谢你们。



const theme = _.merge(getTheme(), {
    defaultFont: {
        fontFamily: 'Rubik-Italic',
      },
    'shoutem.ui.NavigationBar': {
        '.clear': {
            container: {
                backgroundColor: params.primaryColor,
                borderBottomColor: 'transparent',
                position: 'relative',
            },
            'shoutem.ui.Title': {
                color: 'white',
                fontSize: 16,
            },
        },
        '.normal': {
            container: {
                position: 'relative'
            },
            'shoutem.ui.Button': {
                'shoutem.ui.Icon': {
                    color: params.colorTextAlpha,
                },
                'shoutem.ui.Text': {
                    color: params.colorTextAlpha,
                },
            },
            'shoutem.ui.Title': {
                color: params.colorText,
            },
        }
    },
    'shoutem.ui.Row': {
        '.fix': {
            paddingHorizontal: 10,
            paddingVertical: 10,
        }
    }
});




1 个答案:

答案 0 :(得分:2)

您要做的是覆盖主题变量。

导入默认主题变量和getTheme函数:

import {
  getTheme,
  defaultThemeVariables,
} from '@shoutem/ui';

然后定义自定义变量:

const myThemeVariables = {
...defaultThemeVariables,
  title: {  fontFamily: 'MyFont' },
};

然后定义使用这些变量的自定义主题:

const myTheme = getTheme(myThemeVariables);

您无法再覆盖defaultFont设置,因此不幸的是,您必须具体。

此外,您必须导入StyleProvider:

import { StyleProvider } from '@shoutem/theme';

并使用它来控制组件的样式:

render() {
    return (
      <StyleProvider style={myTheme}>
        // your components here
      </StyleProvider>
    );
  }
}