已知 Issues

2019-08-14 14:26 更新

棄用的模塊和原生視圖

這是 React Native Android 的首次發(fā)行,因此在 iOS 平臺(tái)上出現(xiàn)的視圖不一定都會(huì)發(fā)布在 Android 上面。我們對(duì)社區(qū)里面的對(duì)下一系列模塊和視圖的開源代碼的反饋非常感興趣。并不是所有的視圖在 iOS 和 Android 上面都有 100% 完全相同的表現(xiàn),因此在這里就有必要使用一個(gè)對(duì)應(yīng)的例子:在 Android 上面使用 ProgressBar,而在 iOS 上面則會(huì)使用 ActivityIndicator 來替代。

我們對(duì)共同的視圖和模塊的臨時(shí)計(jì)劃包括:

視圖

    View Pager
    Swipe Refresh
    Spinner
    ART
    Maps
    Webview

模塊

    Geo Location
    Net Info
    Camera Roll
    App State
    Dialog
    Intent
    Media
    Pasteboard
    Alert

在 Android 上發(fā)布的模塊

現(xiàn)在在 Android 上面發(fā)布自定義的原生模塊并不是一件輕松的事。貢獻(xiàn)者平滑穩(wěn)定的工作流很重要并且這將在第一次開源版本發(fā)布之后被密切關(guān)注。當(dāng)然,我們的目標(biāo)是形成流水線并且盡量?jī)?yōu)化在 iOS 和 Android 平臺(tái)之間的流程。

使用透明度為 0 來覆視圖不能被點(diǎn)擊

在 iOS 和 Android 之間使用透明度為 0 來處理視圖有一個(gè)明顯的差異。雖然在 iOS 上面允許這些視圖被點(diǎn)擊并且在這些視圖下面的視圖也將會(huì)接收到觸摸輸入,但是在 Android 上面這個(gè)觸摸輸入則會(huì)被阻塞。這一點(diǎn)可以用下面的一個(gè)只能在 iOS 上面點(diǎn)擊的例子來演示。

    <View style={{flex: 1}}>
        <TouchableOpacity onPress={() => alert('hi!')}>            <Text>HELLO!</Text>
        </TouchableOpacity>
        <View style={{
          position: 'absolute', 
          top: 0, 
          left: 0, 
          bottom: 0, 
          right: 0, 
          opacity: 0}} />
    </View>

在 Android 上面的單獨(dú)布局節(jié)點(diǎn)

在 React Native 的安卓版本一個(gè)優(yōu)化的特征就是對(duì)于只能貢獻(xiàn)布局的視圖不能有原生視圖,只有它們的布局屬性能夠傳遞到它們的子視圖。這個(gè)優(yōu)化是為了給更深層次的 React Native 視圖層提供支持,因此默認(rèn)是開啟的。如果你需要一個(gè)視圖被呈現(xiàn),或者間歇性的測(cè)試檢測(cè)一個(gè)視圖是不是只是布局,關(guān)閉這個(gè)行為就很有必要了。為了做到這一點(diǎn),你只需要設(shè)置 collapsable 為 false 即可:

    <View collapsable={false}>
        ...    </View>


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)