1. 程式人生 > >ReactNative ListView控制元件屬性和樣式

ReactNative ListView控制元件屬性和樣式

基本使用方式

//建構函式中繫結資料
constructor(props) {
    super(props);
    let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2})
    
    // 初始狀態
    this.state = {
        dataSource: ds.cloneWithRows(PublishData.data)
    };
}

//方法中進行資料處理,並放到控制元件位置
onBindRow(rowData){
    let content = [];
    let data = rowData.data;
    data.map((o, i) => {
        content.push(
            <View key={i}>
                <Text style={styles.text} numberOfLines={1}>{o.name}</Text>
                <Text style={styles.textDetail} numberOfLines={1}>{o.value}</Text>
            </View>
        )
    });
    
    return (
        <View style={styles.container}>
            {content}
        </View>
    )
}

//render中設定控制元件
render() {
    return (
        <View style={styles.flex}>
            <ListView
                dataSource={this.state.dataSource}
               renderRow={this.onBindRow.bind(this)}
            />
        </View>
    )
}

屬性

ScrollView 全部屬性

dataSource:

設定ListView的資料來源

initialListSize:

指定在元件剛掛載的時候渲染多少行資料。用這個屬性來確保首屏顯示合適數量的資料,而不是花費太多幀逐步顯示出來

onChangeVisibleRows:

((visibleRows, changedRows) => void)當可見的行的集合變化的時候呼叫此回撥函式。visibleRows 以 { sectionID: { rowID: true }}的格式包含了所有可見行,而changedRows 以{ sectionID: { rowID: true | false }}的格式包含了所有剛剛改變了可見性的行,其中如果值為true表示一個行變得可見,而為false表示行剛剛離開可視區域而變得不可見

onEndReached:

當所有的資料都已經渲染過,並且列表被滾動到距離最底部不足onEndReachedThreshold個畫素的距離時呼叫。原生的滾動事件會被作為引數傳遞。譯註:當第一次渲染時,如果資料不足一屏(比如初始值是空的),這個事件也會被觸發

onEndReachedThreshold:

呼叫onEndReached之前的臨界值,單位是畫素

pageSize:

每次事件迴圈(每幀)渲染的行數

removeClippedSubviews:

用於提升大列表的滾動效能。需要給行容器新增樣式overflow:‘hidden’。(Android已預設新增此樣式)此屬性預設開啟

renderFooter:

(() =>renderable)頁頭與頁尾會在每次渲染過程中都重新渲染(如果提供了這些屬性)。如果它們重繪的效能開銷很大,把他們包裝到一個StaticContainer或者其它恰當的結構中。頁尾會永遠在列表的最底部,而頁頭會在最頂部

renderHeader:

在每一次渲染過程中Footer(尾)該會一直在列表的底部,header(頭)該會一直在列表的頭部

renderRow:

(rowData, sectionID, rowID, highlightRow) => renderable

  • 從資料來源(Data source)中接受一條資料,以及它和它所在section的ID。返回一個可渲染的元件來為這行資料進行渲染。預設情況下引數中的資料就是放進資料來源中的資料本身,不過也可以提供一些轉換器
  • 如果某一行正在被高亮(通過呼叫highlightRow函式),ListView會得到相應的通知。當一行被高亮時,其兩側的分割線會被隱藏。行的高亮狀態可以通過呼叫highlightRow(null)來重置

renderScrollComponent:

(props) => renderable指定一個函式,在其中返回一個可以滾動的元件。ListView將會在該元件內部進行渲染。預設情況下會返回一個包含指定屬性的ScrollView

enderSectionHeader:

(sectionData, sectionID) => renderable

  • 如果提供了此函式,會為每個小節(section)渲染一個粘性的標題。
  • 粘性是指當它剛出現時,會處在對應小節的內容頂部;繼續下滑當它到達螢幕頂端的時候,它會停留在螢幕頂端,一直到對應的位置被下一個小節的標題佔據為止

renderSeparator:

(sectionID, rowID, adjacentRowHighlighted) => renderable

如果提供了此屬性,一個可渲染的元件會被渲染在每一行下面,除了小節標題的前面的最後一行。在其上方的小節ID和行ID,以及鄰近的行是否被高亮會作為引數傳遞進來

scrollRenderAheadDistance:

當一個行接近螢幕範圍多少畫素之內的時候,就開始渲染這一行

stickyHeaderIndices(只支援iOS):

一個子檢視下標的陣列,用於決定哪些成員會在滾動之後固定在螢幕頂端。舉個例子,傳遞stickyHeaderIndices={[0]}會讓第一個成員固定在滾動檢視頂端。這個屬性不能和horizontal={true}一起使用

方法

getMetrics():

匯出一些用於效能分析的資料

scrollTo(…args)

:滾動到指定的x,y偏移處,可以指定是否加上過渡動畫。

相關推薦

ReactNative ListView控制元件屬性樣式

基本使用方式 //建構函式中繫結資料 constructor(props) { super(props); let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !=

ReactNative View控制元件屬性樣式

屬性: numberOfLines 文字行數限制,新增後超過限制行數文字會在末尾預設以…的形式省略。 ellipsizeMode 設定文字縮略格式,配合numberOfLines使用,values: * tail:在末尾…省略(預設值) *

ReactNative Picker控制元件屬性樣式

屬性 該控制元件可以使用View控制元件的全部屬性 onValueChange function 某一項被選中時執行此回撥。呼叫時帶有如下引數: itemValue: 被選中項的value屬性 itemPosition: 被選中項在picker中的索引位置

ReactNative Image控制元件屬性樣式

用法 載入本地圖片 <Image source={require('./img/baidu.png')}/> 載入App內資源圖片 <Image source={{uri: 'ic_launcher'}} /> 載入網路圖片 <

ReactNative Touchable控制元件屬性樣式

TouchableHighlight(高亮觸控) 注:TouchableHighlight只能進行一層巢狀,不能多層巢狀,如果需要多層巢狀就要用View包裝 activeOpacity: 設定元件在進行觸控時候,顯示的不透明度(取值:0 ~ 1) onHideU

React Native之Text控制元件屬性樣式

屬性 numberOfLines 文字行數限制,新增後超過限制行數文字會在末尾預設以…的形式省略。 ellipsizeMode 設定文字縮略格式,配合numberOfLines使用,values: * tail:在末尾…省略(預設值) * c

ReactNative Progress(ProgressBarAndroid、ProgressViewIOS)控制元件屬性樣式

ProgressBarAndroid 屬性方法 支援View控制元件的屬性方法 從View控制元件中繼承下來, 例如:大小,佈局,邊距 color 設定進度的顏色屬性值 indeterminate 設定

ReactNative DrawerLayoutAndroid控制元件屬性樣式、方法

drawerPosition 抽屜的位置,指定在那邊開啟 DrawerConsts.DrawerPosition.Left DrawerConsts.DrawerPosition.Right dra

Winform下使用ListView控制元件ImageList控制元件顯示圖片縮圖

一、基本概念 1、ImageList控制元件 ImageList元件,又稱為圖片儲存元件,它主要用於儲存圖片資源,然後在控制元件上顯示出來,這樣就簡化了對圖片的管理。ImageList元件的主要屬性是Images,它包含關聯控制元件將要使用的圖片。每個單獨的圖片可以通過其索引值或鍵值來訪問。

DevExpress 使用 XtraTabbedMdiManager 控制元件以 Tab樣式載入 Mdi窗體併合並父子窗體的 RibbonControl 解決方案

最近剛接觸到 DevExpress 13.1 這個面板元件, 覺得相當好用 於是開始準備搭建 個小應用的主體框架. 找了好久的就是沒找到對應的文章來講解這一塊.. 翻了他們主網站上人家問的,以及API 才摸索... 不懂英文好吃力呀~~~ 首先選到的就是,依舊用 Md

Android控制元件屬性——是否可見可點選

寫這個文章主要是做一下筆記,記錄下控制元件的屬性設定 1.設定控制元件是否可點選(boutton) 在xml下設定boutton不可點選 android:enabled = "false" 在活動中

Android控制元件RecyclerViewListView的異同

在我的一篇介紹Android新控制元件RecyclerView的部落格( Android L新控制元件RecyclerView簡介 )中,一個讀者留言說RecyclerView跟ListView之間好像沒有什麼不同,我覺得這是一個好問題,應該明確地區分一下兩者的睯,所以我就研究了一下它倆之間的區別,然後

關於ListView中Item點選事件,動態改變Item中控制元件屬性

ListView中的Item事件點選不了,怎麼辦? 由於要設定ListView的Item點選事件來改變控制元件屬性,設定的時候發現Item無法點選,原因之一是給Item中的控制元件添加了屬性android:clickable=”true”使Item不響應點選事

MFC下如何設定控制元件的字型樣式,視窗背景控制元件底色透明

重寫OnPaint方法(WM_PAINT)和OnCtlColor的方法(WM_CTLCOLOR) void CPannelRecentUsed::OnPaint() { CPaintDC dc(this); // device context for painting

JQuery快速入門-操作元素的屬性樣式

dcl 顯示 實現 節點 ali 文本 屬性。 另一個 增加 我們在學習JavaScript時,詳細介紹了DOM對象。從DOM樹可以得知,對DOM的操作,主要包括:元素的屬性、內容、值、CSS。 一、元素屬性的操作 在 jQuery 中,可以對元素的屬性執行獲取、設置、

JQuery元素屬性樣式操作、以及設置元素內容

ava 例如 term wid 集合 遍歷 內容 ssd each 一、JQury元素屬性操作通過JQuery可以對元素本身的屬性進行操作,包括獲取屬性的屬性值,設置屬性的屬性值,並且可以刪除屬性值(attr()和removeAttr())。二、JQuery樣式操作元素樣式

C# 控制元件屬性一覽表

1、窗體  1、常用屬性  (1)Name屬性:用來獲取或設定窗體的名稱,在應用程式中可通過Name屬性來引用窗體。  (2) WindowState屬性:  用來獲取或設定窗體的視窗狀態。 取值有三種: Normal (窗體正常顯示)、 Minimized

安卓入門之ListView控制元件實現

ListView介紹 安卓中ListView是一種自定義清單表,我們經常在淘寶上搜索寶貝後所出現的上下可滑動的商品列表、QQ/微信訊息列表等都是ListView控制元件來做的,下面紅框框中就是ListView。 有沒有一種豁然開朗的感覺(瘋狂暗示)。。。所以掌握ListView這種

SQLite資料庫、ListView控制元件的使用

android下資料庫的建立(重點) 在Android平臺上,集成了一個輕量級嵌入式關係型資料庫—SQLite,SQLite3支援 NULL、INTEGER、REAL(浮點數字)、TEXT(字串文字)和BLOB(二進位制物件)資料型別,也接受varchar(n)、char(n)、deci

Winform控制元件屬性事件介紹