跳到主要內容

StyleSheet

StyleSheet 是一種抽象化,類似於 CSS StyleSheets。

程式碼品質提示

  • 將樣式從 render 函數中移開,可以讓程式碼更容易理解。
  • 為樣式命名是為 render 函數中的底層元件添加意義,並鼓勵重複使用的好方法。
  • 在大多數 IDE 中,使用 StyleSheet.create() 將提供靜態類型檢查和建議,以幫助您編寫有效的樣式。

參考

方法

compose()

tsx
static compose(style1: Object, style2: Object): Object | Object[];

組合兩種樣式,使 style2 將覆蓋 style1 中的任何樣式。如果任一樣式為 falsy,則返回另一個樣式,而無需分配陣列,從而節省分配並保持 PureComponent 檢查的參考相等性。


create()

tsx
static create(styles: Object extends Record<string, ViewStyle | ImageStyle | TextStyle>): Object;

用於建立樣式的恆等函數。在 StyleSheet.create() 內部建立樣式的主要實際優點是對原生樣式屬性進行靜態類型檢查。


flatten()

tsx
static flatten(style: Array<Object extends Record<string, ViewStyle | ImageStyle | TextStyle>>): Object;

將樣式物件陣列扁平化為一個聚合樣式物件。


setStyleAttributePreprocessor()

警告:實驗性功能。 破壞性變更可能會經常發生,並且不會可靠地發布。整個東西可能會被刪除,誰知道呢?使用風險自負。

tsx
static setStyleAttributePreprocessor(
property: string,
process: (propValue: any) => any,
);

設定一個函數,用於預先處理樣式屬性值。這在內部用於處理顏色和變換值。除非您非常清楚自己在做什麼並且已用盡其他選項,否則不應使用它。

屬性


absoluteFill

一個非常常見的模式是建立具有絕對位置和零定位(position: 'absolute', left: 0, right: 0, top: 0, bottom: 0)的覆蓋層,因此 absoluteFill 可以方便地使用並減少這些重複樣式的重複。如果您願意,可以使用 absoluteFill 在 StyleSheet 中建立自訂條目,例如


absoluteFillObject

有時您可能想要 absoluteFill,但需要進行一些調整 - absoluteFillObject 可用於在 StyleSheet 中建立自訂條目,例如


hairlineWidth

這被定義為平台上細線的寬度。它可以用作邊框的粗細或兩個元素之間的分割線。範例

此常數將始終是像素的整數(因此由此定義的線條看起來清晰),並將嘗試匹配底層平台上細線的標準寬度。但是,您不應依賴它作為恆定大小,因為在不同的平台和螢幕密度上,其值可能會以不同的方式計算。

如果您的模擬器縮小了,則具有髮絲寬度的線條可能不可見。