在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 樣式
JavaScript 環(huán)境
計時器
Native 模塊(iOS)
入門
在設(shè)備上運(yùn)行
ProgressBarAndroid
iOS 應(yīng)用程序狀態(tài)
網(wǎng)絡(luò)
ToolbarAndroid
測試
輔助功能
網(wǎng)絡(luò)信息
DrawerLayoutAndroid
樣式表
手勢應(yīng)答系統(tǒng)
與現(xiàn)有的應(yīng)用程序集成
樣式
教程
不透明觸摸
調(diào)試 React Native 應(yīng)用
iOS 活動指示器
導(dǎo)航器
無反饋觸摸
動畫布局
Web 視圖
鏈接庫
像素比率
React Native 官網(wǎng)首頁介紹
iOS 導(dǎo)航器
交互管理器
全景響應(yīng)器
SwitchAndroid
TabBarIOS.Item
相機(jī)滾動
ToastAndroid
iOS 震動
BackAndroid
文本輸入
iOS 選擇器
應(yīng)用程序注冊表
iOS 開關(guān)
滾動視圖
iOS 日期選擇器
iOS 警告
iOS 鏈接
視圖
圖片
列表視圖
異步存儲
Native UI 組件(Android)
iOS 滑塊
Map 視圖
高亮觸摸
iOS 推送通知
文本
定位
iOS 狀態(tài)欄
Native UI 組件(iOS)
在設(shè)備上運(yùn)行(Android)
Native 模塊(Android)
Flexbox
已知 Issues
iOS 選項卡
安裝 Android 運(yùn)行環(huán)境

樣式

React Native 不實現(xiàn) CSS,而是依賴于 JavaScript 來為你的應(yīng)用程序設(shè)置樣式。這是一個有爭議的決定,你可以閱讀那些幻燈片,了解背后的基本原理。

聲明樣式

在 React Native 中聲明樣式的方法如下:

var styles = StyleSheet.create({
  base: {
    width: 38,
    height: 38,
  },
  background: {
    backgroundColor: '#222222',
  },
  active: {
    borderWidth: 2,
    borderColor: '#00ff00',
  },
}); 

StyleSheet.create 的創(chuàng)建是可選的,但提供了一些關(guān)鍵優(yōu)勢。它通過將它們轉(zhuǎn)換為引用一個內(nèi)部表的純數(shù)字,來確保值是不可變的不透明的。通過將它放在文件的最后,也確保了它們?yōu)閼?yīng)用程序只創(chuàng)建一次,而不是每一個 render 都創(chuàng)建。

所有的屬性名稱和值是工作在網(wǎng)絡(luò)中的一個子集。對于布局來說,React Native實現(xiàn)了 Flexbox

使用樣式

所有的核心組件接受樣式屬性。

<Text style={styles.base} />
<View style={styles.background} />

它們也接受一系列的樣式。

<View style={[styles.base, styles.background]} />

行為與 Object.assign 相同:在沖突值的情況下,從最右邊元素的值將會優(yōu)先,并且 falsy 值如 false,undefinednull 將被忽略。一個常見的模式是基于某些條件有條件地添加一個樣式。

<View style={[styles.base, this.state.active && styles.active]} /> 

最后,如果真的需要,您還可以在render中創(chuàng)建樣式對象,但是這種做法非常不贊成。最后把它們放在數(shù)組定義中。

<View
  style={[styles.base, {
    width: this.state.width,
    height: this.state.width * this.state.aspectRatio
  }]}
/>

樣式傳遞

為了讓一個 call site 定制你的子組件的樣式,你可以通過樣式傳遞。使用 View.propTypes.styleText.propTypes.style,以確保只有樣式被傳遞了。

var List = React.createClass({
  propTypes: {
    style: View.propTypes.style,
    elementStyle: View.propTypes.style,
  },
  render: function() {
    return (
      <View style={this.props.style}>
        {elements.map((element) =>
          <View style={[styles.element, this.props.elementStyle]} />
        )}
      </View>
    );
  }
});
// ... in another file ...
<List style={styles.list} elementStyle={styles.listElement} />

屬性支持

你可以在以下的鏈接中檢測最新的 CSS 屬性支持。

上一篇:iOS 鏈接下一篇:滾動視圖