mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
d6c8c31cb1
Deploy website version based on aa6bca5d8b7a59a46c8e4e5a6803f43206c13b65
212 lines
42 KiB
HTML
212 lines
42 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StyleSheet · React Native</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="A `StyleSheet` is an abstraction similar to CSS StyleSheets"/><meta name="docsearch:version" content="0.52"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="StyleSheet · React Native"/><meta property="og:type" content="website"/><meta property="og:url" content="https://reactnative.dev/"/><meta property="og:description" content="A `StyleSheet` is an abstraction similar to CSS StyleSheets"/><meta property="og:image" content="https://reactnative.dev/img/logo-og.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://reactnative.dev/img/logo-og.png"/><link rel="shortcut icon" href="/img/favicon.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/solarized-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://reactnative.dev/blog/atom.xml" title="React Native Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://reactnative.dev/blog/feed.xml" title="React Native Blog RSS Feed"/><script>
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||
|
||
ga('create', 'UA-41298772-2', 'auto');
|
||
ga('send', 'pageview');
|
||
</script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/focus-visible@5.0.2/dist/focus-visible.min.js"></script><script type="text/javascript" src="https://snack.expo.io/embed.js"></script><script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="/js/codeblocks.js"></script><script type="text/javascript" src="/js/tabs.js"></script><script type="text/javascript" src="/js/docs-rating.js"></script><script src="https://unpkg.com/vanilla-back-to-top@7.1.14/dist/vanilla-back-to-top.min.js"></script><script>
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
addBackToTop(
|
||
{"zIndex":100}
|
||
)
|
||
});
|
||
</script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/prism.css"/><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/header_logo.svg" alt="React Native"/><h2 class="headerTitleWithLogo">React Native</h2></a><a href="/versions"><h3>0.52</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/docs/0.52/getting-started" target="_self">Docs</a></li><li class="siteNavGroupActive"><a href="/docs/0.52/components-and-apis" target="_self">Components</a></li><li class="siteNavGroupActive"><a href="/docs/0.52/accessibilityinfo" target="_self">API</a></li><li class=""><a href="/help" target="_self">Community</a></li><li class=""><a href="/blog/" target="_self">Blog</a></li><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li><li class=""><a href="https://github.com/facebook/react-native" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i>›</i><span>APIs</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">The Basics<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/0.52/getting-started">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/tutorial">Learn the Basics</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/props">Props</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/state">State</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/style">Style</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/height-and-width">Height and Width</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/flexbox">Layout with Flexbox</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/handling-text-input">Handling Text Input</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/handling-touches">Handling Touches</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/using-a-scrollview">Using a ScrollView</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/using-a-listview">Using List Views</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/network">Networking</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/more-resources">More Resources</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Guides<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/0.52/components-and-apis">Components and APIs</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/platform-specific-code">Platform Specific Code</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/navigation">Navigating Between Screens</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/images">Images</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/animations">Animations</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/accessibility">Accessibility</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/improvingux">Improving User Experience</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/timers">Timers</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/debugging">Debugging</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/performance">Performance</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/gesture-responder-system">Gesture Responder System</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/javascript-environment">JavaScript Environment</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/direct-manipulation">Direct Manipulation</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/colors">Color Reference</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/integration-with-existing-apps">Integration with Existing Apps</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/building-for-tv">Building For TV Devices</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/running-on-device">Running On Device</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/upgrading">Upgrading to new React Native versions</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/troubleshooting">Troubleshooting</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/native-modules-setup">Native Modules Setup</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Guides (iOS)<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/0.52/native-modules-ios">Native Modules</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/native-components-ios">Native UI Components</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/linking-libraries-ios">Linking Libraries</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/running-on-simulator-ios">Running On Simulator</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/communication-ios">Communication between native and React Native</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/app-extensions">App Extensions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Guides (Android)<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/0.52/native-modules-android">Native Modules</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/native-components-android">Native UI Components</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/headless-js-android">Headless JS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/signed-apk-android">Publishing to Google Play Store</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/removing-default-permissions">Removing Default Permissions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">Components<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/0.52/activityindicator">ActivityIndicator</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/button">Button</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/datepickerios">DatePickerIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/drawerlayoutandroid">DrawerLayoutAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/flatlist">FlatList</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/image">Image</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/imagebackground">ImageBackground</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/keyboardavoidingview">KeyboardAvoidingView</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/listview">ListView</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/maskedviewios">MaskedViewIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/modal">Modal</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/navigatorios">NavigatorIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/picker">Picker</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/pickerios">PickerIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/progressbarandroid">ProgressBarAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/progressviewios">ProgressViewIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/refreshcontrol">RefreshControl</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/safeareaview">SafeAreaView</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/scrollview">ScrollView</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/sectionlist">SectionList</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/segmentedcontrolios">SegmentedControlIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/slider">Slider</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/snapshotviewios">SnapshotViewIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/statusbar">StatusBar</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/switch">Switch</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/tabbarios">TabBarIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/tabbarios-item">TabBarIOS.Item</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/text">Text</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/textinput">TextInput</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/toolbarandroid">ToolbarAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/touchablehighlight">TouchableHighlight</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/touchablenativefeedback">TouchableNativeFeedback</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/touchableopacity">TouchableOpacity</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/touchablewithoutfeedback">TouchableWithoutFeedback</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/view">View</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/viewpagerandroid">ViewPagerAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/virtualizedlist">VirtualizedList</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/webview">WebView</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle collapsible">APIs<span class="arrow"><svg width="24" height="24" viewBox="0 0 24 24"><path fill="#565656" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span></h3><ul class="hide"><li class="navListItem"><a class="navItem" href="/docs/0.52/accessibilityinfo">AccessibilityInfo</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/actionsheetios">ActionSheetIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/alert">Alert</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/alertios">AlertIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/animated">Animated</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/appregistry">AppRegistry</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/appstate">AppState</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/asyncstorage">AsyncStorage</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/backandroid">BackAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/backhandler">BackHandler</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/cameraroll">CameraRoll</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/clipboard">Clipboard</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/datepickerandroid">DatePickerAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/dimensions">Dimensions</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/easing">Easing</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/geolocation">Geolocation</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/imageeditor">ImageEditor</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/imagepickerios">ImagePickerIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/imagestore">ImageStore</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/image-style-props">Image Style Props</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/interactionmanager">InteractionManager</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/keyboard">Keyboard</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/layout-props">Layout Props</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/layoutanimation">LayoutAnimation</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/linking">Linking</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/listviewdatasource">ListViewDataSource</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/netinfo">NetInfo</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/panresponder">PanResponder</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/permissionsandroid">PermissionsAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/pixelratio">PixelRatio</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/pushnotificationios">PushNotificationIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/settings">Settings</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/shadow-props">Shadow Props</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/share">Share</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/statusbarios">StatusBarIOS</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/docs/0.52/stylesheet">StyleSheet</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/systrace">Systrace</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/text-style-props">Text Style Props</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/timepickerandroid">TimePickerAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/toastandroid">ToastAndroid</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/transforms">Transforms</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/vibration">Vibration</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/vibrationios">VibrationIOS</a></li><li class="navListItem"><a class="navItem" href="/docs/0.52/view-style-props">View Style Props</a></li></ul></div></div></section></div><script>
|
||
var coll = document.getElementsByClassName('collapsible');
|
||
var checkActiveCategory = true;
|
||
for (var i = 0; i < coll.length; i++) {
|
||
var links = coll[i].nextElementSibling.getElementsByTagName('*');
|
||
if (checkActiveCategory){
|
||
for (var j = 0; j < links.length; j++) {
|
||
if (links[j].classList.contains('navListItemActive')){
|
||
coll[i].nextElementSibling.classList.toggle('hide');
|
||
coll[i].childNodes[1].classList.toggle('rotate');
|
||
checkActiveCategory = false;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
coll[i].addEventListener('click', function() {
|
||
var arrow = this.childNodes[1];
|
||
arrow.classList.toggle('rotate');
|
||
var content = this.nextElementSibling;
|
||
content.classList.toggle('hide');
|
||
});
|
||
}
|
||
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
createToggler('#navToggler', '#docsNav', 'docsSliderActive');
|
||
createToggler('#tocToggler', 'body', 'tocActive');
|
||
|
||
var headings = document.querySelector('.toc-headings');
|
||
headings && headings.addEventListener('click', function(event) {
|
||
var el = event.target;
|
||
while(el !== headings){
|
||
if (el.tagName === 'A') {
|
||
document.body.classList.remove('tocActive');
|
||
break;
|
||
} else{
|
||
el = el.parentNode;
|
||
}
|
||
}
|
||
}, false);
|
||
|
||
function createToggler(togglerSelector, targetSelector, className) {
|
||
var toggler = document.querySelector(togglerSelector);
|
||
var target = document.querySelector(targetSelector);
|
||
|
||
if (!toggler) {
|
||
return;
|
||
}
|
||
|
||
toggler.onclick = function(event) {
|
||
event.preventDefault();
|
||
|
||
target.classList.toggle(className);
|
||
};
|
||
}
|
||
});
|
||
</script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/facebook/react-native-website/blob/master/docs/stylesheet.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">StyleSheet</h1></header><article><div><span><p>A <code>StyleSheet</code> is an abstraction similar to CSS StyleSheets</p>
|
||
<p>Create a new <code>StyleSheet</code>:</p>
|
||
<pre><code class="hljs"><span class="hljs-string">const</span> <span class="hljs-string">styles</span> <span class="hljs-string">=</span> <span class="hljs-string">StyleSheet.create({</span>
|
||
<span class="hljs-attr">container:</span> <span class="hljs-string">{</span>
|
||
<span class="hljs-attr">borderRadius:</span> <span class="hljs-number">4</span><span class="hljs-string">,</span>
|
||
<span class="hljs-attr">borderWidth:</span> <span class="hljs-number">0.5</span><span class="hljs-string">,</span>
|
||
<span class="hljs-attr">borderColor:</span> <span class="hljs-string">'#d6d7da'</span><span class="hljs-string">,</span>
|
||
<span class="hljs-string">},</span>
|
||
<span class="hljs-attr">title:</span> <span class="hljs-string">{</span>
|
||
<span class="hljs-attr">fontSize:</span> <span class="hljs-number">19</span><span class="hljs-string">,</span>
|
||
<span class="hljs-attr">fontWeight:</span> <span class="hljs-string">'bold'</span><span class="hljs-string">,</span>
|
||
<span class="hljs-string">},</span>
|
||
<span class="hljs-attr">activeTitle:</span> <span class="hljs-string">{</span>
|
||
<span class="hljs-attr">color:</span> <span class="hljs-string">'red'</span><span class="hljs-string">,</span>
|
||
<span class="hljs-string">},</span>
|
||
<span class="hljs-string">});</span>
|
||
</code></pre>
|
||
<p>Use a <code>StyleSheet</code>:</p>
|
||
<pre><code class="hljs"><span class="hljs-tag"><<span class="hljs-name">View</span> <span class="hljs-attr">style</span>=<span class="hljs-string">{styles.container}</span>></span>
|
||
<span class="hljs-tag"><<span class="hljs-name">Text</span> <span class="hljs-attr">style</span>=<span class="hljs-string">{[styles.title,</span> <span class="hljs-attr">this.props.isActive</span> && <span class="hljs-attr">styles.activeTitle</span>]} /></span>
|
||
<span class="hljs-tag"></<span class="hljs-name">View</span>></span>
|
||
</code></pre>
|
||
<p>Code quality:</p>
|
||
<ul>
|
||
<li>By moving styles away from the render function, you're making the code easier to understand.</li>
|
||
<li>Naming the styles is a good way to add meaning to the low level components in the render function.</li>
|
||
</ul>
|
||
<p>Performance:</p>
|
||
<ul>
|
||
<li>Making a stylesheet from a style object makes it possible to refer to it by ID instead of creating a new style object every time.</li>
|
||
<li>It also allows to send the style only once through the bridge. All subsequent uses are going to refer an id (not implemented yet).</li>
|
||
</ul>
|
||
<h3><a class="anchor" aria-hidden="true" id="methods"></a><a href="#methods" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Methods</h3>
|
||
<ul>
|
||
<li><a href="/docs/0.52/stylesheet#setstyleattributepreprocessor"><code>setStyleAttributePreprocessor</code></a></li>
|
||
<li><a href="/docs/0.52/stylesheet#create"><code>create</code></a></li>
|
||
</ul>
|
||
<h3><a class="anchor" aria-hidden="true" id="properties"></a><a href="#properties" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Properties</h3>
|
||
<ul>
|
||
<li><a href="/docs/0.52/stylesheet#hairlinewidth"><code>hairlineWidth</code></a></li>
|
||
<li><a href="/docs/0.52/stylesheet#absolutefill"><code>absoluteFill</code></a></li>
|
||
<li><a href="/docs/0.52/stylesheet#absolutefillobject"><code>absoluteFillObject</code></a></li>
|
||
<li><a href="/docs/0.52/stylesheet#flatten"><code>flatten</code></a></li>
|
||
</ul>
|
||
<hr>
|
||
<h1><a class="anchor" aria-hidden="true" id="reference"></a><a href="#reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Reference</h1>
|
||
<h2><a class="anchor" aria-hidden="true" id="methods-1"></a><a href="#methods-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Methods</h2>
|
||
<h3><a class="anchor" aria-hidden="true" id="setstyleattributepreprocessor"></a><a href="#setstyleattributepreprocessor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>setStyleAttributePreprocessor()</code></h3>
|
||
<pre><code class="hljs css language-jsx"><span class="token keyword">static</span> <span class="token function">setStyleAttributePreprocessor</span><span class="token punctuation">(</span>property<span class="token punctuation">,</span> process<span class="token punctuation">)</span>
|
||
</code></pre>
|
||
<p>WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will not be reliably announced. The whole thing might be deleted, who knows? Use at your own risk.</p>
|
||
<p>Sets a function to use to pre-process a style property value. This is used internally to process color and transform values. You should not use this unless you really know what you are doing and have exhausted other options.</p>
|
||
<hr>
|
||
<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>create()</code></h3>
|
||
<pre><code class="hljs css language-jsx"><span class="token keyword">static</span> <span class="token function">create</span><span class="token punctuation">(</span>obj<span class="token punctuation">)</span>
|
||
</code></pre>
|
||
<p>Creates a StyleSheet style reference from the given object.</p>
|
||
<h2><a class="anchor" aria-hidden="true" id="properties-1"></a><a href="#properties-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Properties</h2>
|
||
<h3><a class="anchor" aria-hidden="true" id="hairlinewidth"></a><a href="#hairlinewidth" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>hairlineWidth</code></h3>
|
||
<pre><code class="hljs css language-jsx"><span class="token keyword">var</span> styles <span class="token operator">=</span> StyleSheet<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
separator<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
borderBottomColor<span class="token operator">:</span> <span class="token string">'#bbb'</span><span class="token punctuation">,</span>
|
||
borderBottomWidth<span class="token operator">:</span> StyleSheet<span class="token punctuation">.</span>hairlineWidth
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre>
|
||
<p>This constant will always be a round number of pixels (so a line defined by it look crisp) and will try to match the standard width of a thin line on the underlying platform. However, you should not rely on it being a constant size, because on different platforms and screen densities its value may be calculated differently.</p>
|
||
<p>A line with hairline width may not be visible if your simulator is downscaled.</p>
|
||
<hr>
|
||
<h3><a class="anchor" aria-hidden="true" id="absolutefill"></a><a href="#absolutefill" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>absoluteFill</code></h3>
|
||
<p>A very common pattern is to create overlays with position absolute and zero positioning, so <code>absoluteFill</code> can be used for convenience and to reduce duplication of these repeated styles.</p>
|
||
<hr>
|
||
<h3><a class="anchor" aria-hidden="true" id="absolutefillobject"></a><a href="#absolutefillobject" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>absoluteFillObject</code></h3>
|
||
<p>Sometimes you may want absoluteFill but with a couple tweaks - absoluteFillObject can be used to create a customized entry in a StyleSheet, e.g.:</p>
|
||
<pre><code class="hljs css language-jsx"><span class="token keyword">const</span> styles <span class="token operator">=</span> StyleSheet<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
wrapper<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
<span class="token operator">...</span>StyleSheet<span class="token punctuation">.</span>absoluteFillObject<span class="token punctuation">,</span>
|
||
top<span class="token operator">:</span> <span class="token number">10</span><span class="token punctuation">,</span>
|
||
backgroundColor<span class="token operator">:</span> <span class="token string">'transparent'</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre>
|
||
<hr>
|
||
<h3><a class="anchor" aria-hidden="true" id="flatten"></a><a href="#flatten" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a><code>flatten</code></h3>
|
||
<p>Flattens an array of style objects, into one aggregated style object. Alternatively, this method can be used to lookup IDs, returned by <code>StyleSheet.register</code>.</p>
|
||
<blockquote>
|
||
<p><em>NOTE</em>: Exercise caution as abusing this can tax you in terms of optimizations. IDs enable optimizations through the bridge and memory in general. Refering to style objects directly will deprive you of these optimizations.</p>
|
||
</blockquote>
|
||
<p>Example:</p>
|
||
<pre><code class="hljs css language-jsx"><span class="token keyword">var</span> styles <span class="token operator">=</span> StyleSheet<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
listItem<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
flex<span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||
fontSize<span class="token operator">:</span> <span class="token number">16</span><span class="token punctuation">,</span>
|
||
color<span class="token operator">:</span> <span class="token string">'white'</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||
selectedListItem<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
color<span class="token operator">:</span> <span class="token string">'green'</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
StyleSheet<span class="token punctuation">.</span><span class="token function">flatten</span><span class="token punctuation">(</span><span class="token punctuation">[</span>styles<span class="token punctuation">.</span>listItem<span class="token punctuation">,</span> styles<span class="token punctuation">.</span>selectedListItem<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token comment">// returns { flex: 1, fontSize: 16, color: 'green' }</span>
|
||
</code></pre>
|
||
<p>Alternative use:</p>
|
||
<pre><code class="hljs css language-jsx"><span class="token keyword">var</span> styles <span class="token operator">=</span> StyleSheet<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
listItem<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
flex<span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||
fontSize<span class="token operator">:</span> <span class="token number">16</span><span class="token punctuation">,</span>
|
||
color<span class="token operator">:</span> <span class="token string">'white'</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||
selectedListItem<span class="token operator">:</span> <span class="token punctuation">{</span>
|
||
color<span class="token operator">:</span> <span class="token string">'green'</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
StyleSheet<span class="token punctuation">.</span><span class="token function">flatten</span><span class="token punctuation">(</span>styles<span class="token punctuation">.</span>listItem<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token comment">// return { flex: 1, fontSize: 16, color: 'white' }</span>
|
||
<span class="token comment">// Simply styles.listItem would return its ID (number)</span>
|
||
</code></pre>
|
||
<p>This method internally uses <code>StyleSheetRegistry.getStyleByID(style)</code> to resolve style objects represented by IDs. Thus, an array of style objects (instances of <code>StyleSheet.create()</code>), are individually resolved to, their respective objects, merged as one and then returned. This also explains the alternative use.</p>
|
||
<hr>
|
||
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/0.52/statusbarios"><span class="arrow-prev">← </span><span class="function-name-prevnext">🚧 StatusBarIOS</span></a><a class="docs-next button" href="/docs/0.52/systrace"><span>Systrace</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#methods-1">Methods</a><ul class="toc-headings"><li><a href="#setstyleattributepreprocessor"><code>setStyleAttributePreprocessor()</code></a></li><li><a href="#create"><code>create()</code></a></li></ul></li><li><a href="#properties-1">Properties</a><ul class="toc-headings"><li><a href="#hairlinewidth"><code>hairlineWidth</code></a></li><li><a href="#absolutefill"><code>absoluteFill</code></a></li><li><a href="#absolutefillobject"><code>absoluteFillObject</code></a></li><li><a href="#flatten"><code>flatten</code></a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><div><h5>Docs</h5><a href="/docs/getting-started">Getting Started</a><a href="/docs/tutorial">Tutorial</a><a href="/docs/components-and-apis">Components and APIs</a><a href="/docs/more-resources">More Resources</a></div><div><h5>Community</h5><a href="/help">The React Native Community</a><a href="/showcase">Who's using React Native?</a><a href="https://stackoverflow.com/questions/tagged/react-native" target="_blank">Ask Questions on Stack Overflow</a><a href="https://github.com/facebook/react-native/blob/master/CONTRIBUTING.md">Contributor Guide</a><a href="https://dev.to/t/reactnative" target="_blank">DEV Community</a></div><div><h5>More Resources</h5><a href="/blog">Blog</a><a href="https://twitter.com/reactnative" target="_blank">Twitter</a><a href="https://github.com/facebook/react-native" target="_blank">GitHub</a><a href="https://reactjs.org" target="_blank">React</a></div></section><a href="https://code.facebook.com/projects/" target="_blank" class="fbOpenSource"><img src="/img/oss_logo.png" alt="Facebook Open Source" width="170" height="45"/></a><section class="copyright">Copyright © 2020 Facebook Inc.</section></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>window.fbAsyncInit = function() {FB.init({appId:'1677033832619985',xfbml:true,version:'v2.7'});};(function(d, s, id){var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) {return;}js = d.createElement(s); js.id = id;js.src = '//connect.facebook.net/en_US/sdk.js';fjs.parentNode.insertBefore(js, fjs);}(document, 'script','facebook-jssdk'));
|
||
</script><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter-wjs'));</script><script>
|
||
document.addEventListener('keyup', function(e) {
|
||
if (e.target !== document.body) {
|
||
return;
|
||
}
|
||
// keyCode for '/' (slash)
|
||
if (e.keyCode === 191) {
|
||
const search = document.getElementById('search_input_react');
|
||
search && search.focus();
|
||
}
|
||
});
|
||
</script><script>
|
||
var search = docsearch({
|
||
|
||
apiKey: '2c98749b4a1e588efec53b2acec13025',
|
||
indexName: 'react-native-versions',
|
||
inputSelector: '#search_input_react',
|
||
algoliaOptions: {"facetFilters":["tags:0.52"],"hitsPerPage":5}
|
||
});
|
||
</script></body></html> |