React-Native中的线性渐变背景色

时间:2018-08-27 12:21:18

标签: react-native

在我的应用程序中,我需要动态更改背景色。更改通过回调从子视图到父视图。 当前看起来像这样:

子视图:

onButton1Press() {
 this.props.callbackFromParent('#ff4c00');
}

父视图:

myCallback = (dataFromChild) => {
 this.setState({ backgroundColor: dataFromChild }); 
}

效果很好,但是问题是我需要实现线性渐变背景色。

我发现了一个'react-native-linear-gradient'库,该库在其他视图(例如按钮)上都可以很好地工作,但是我无法将其设置为背景色。

示例:

    <LinearGradient colors={['#085d87', '#27c7bb']}
       start={{ x: 0, y: 1 }}
       end={{ x: 1, y: 0 }}>
        <Text style={styles.buttonText}>LinearGradient</Text>
    </LinearGradient>

可以将背景色设置为渐变吗?还有另一种方法可以使本机化吗?谢谢。

3 个答案:

答案 0 :(得分:1)

如果您想将其放在背景中,则只需将std::stringstream data; Poco::Net::HTTPResponse dataResponse; Poco::StreamCopier::copyStream(dataSession->receiveResponse(dataResponse), data); 换成背景的<LinearGradient 示例:

view

希望这会有所帮助!

答案 1 :(得分:0)

您可以创建一个自定义类或组件,并在按下子组件上的按钮时使用它来更改父视图。

示例代码:

def get_id(path):
    return path.split('\\')[-3]

unique_ids = [get_id(path) for path in ps+db]
unique_ids = [id_ for id_ in unique_ids if unique_ids.count(id_)==1]

ps = [path for path in ps if get_id(path) not in unique_ids]
db = [path for path in db if get_id(path) not in unique_ids]

答案 2 :(得分:0)

Expo具有LinearGradient,这非常容易。

import { LinearGradient } from 'expo';

<LinearGradient
   colors={['#4c669f', '#3b5998', '#192f6a']}
   style={{ padding: 15, alignItems: 'center', borderRadius: 5 }}>
     <Text
       style={{
         backgroundColor: 'transparent',
         fontSize: 15,
         color: '#fff',
       }}>
       Sign in with Facebook
     </Text>
   </LinearGradient>