React Native - 08 - 響應(yīng)點擊

用戶主要通過觸摸與移動應(yīng)用進(jìn)行交互涡扼。他們可以使用手勢組合苛吱,例如點擊按鈕吹泡,滾動列表或縮放地圖骤星。 React Native提供組件來處理各種常見的手勢,以及一個全面的手勢響應(yīng)系統(tǒng)爆哑,以允許更高級的手勢識別洞难,但是你最可能感興趣的一個組件是基本的Button。

顯示按鈕

按鈕提供了一個基本的按鈕組件泪漂,可以在所有平臺上很好地渲染廊营。顯示按鈕的最小示例如下所示

<Button
  onPress={() => {
    Alert.alert('You tapped the button!');
  }}
  title="Press Me"
/>

這將在iOS上呈現(xiàn)藍(lán)色標(biāo)簽,在Android上呈現(xiàn)藍(lán)色圓角矩形萝勤,并顯示白色文字露筒。按下按鈕將調(diào)用“onPress”功能,在這種情況下顯示一個警報彈出窗口敌卓。如果你喜歡慎式,你可以指定一個“顏色”道具來改變你的按鈕的顏色。

import React, { Component } from 'react';
import { Alert, Button, StyleSheet, View } from 'react-native';

export default class ButtonBasics extends Component {
    _onPressButton() {
        Alert.alert('You tapped the button!');
    }

    render() {
        return (
            <View style={ styles.container } >
                <View style={ styles.buttonContainer } >
                    <Button 
                        onPress={this._onPressButton}
                        title='Press Me'
                    />
                </View>
                <View style={ styles.buttonContainer } >
                    <Button 
                        onPress={this._onPressButton}
                        title='Press Me'
                        color='#841584'
                    />
                </View>
                <View style={ styles.alternativeLayoutButtonContainer } >
                    <Button 
                        onPress={this._onPressButton}
                        title='This loos great!'
                    />
                </View>
            </View>
        );
    }
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
    },
    buttonContainer: {
        margin: 20,
    },
    alternativeLayoutButtonContainer: {
        margin: 20,
        flexDirection: 'row',
        justifyContent: 'space-between'
    }
});
image.png

可點擊

如果基本按鈕看起來不適合您的應(yīng)用程序趟径,則可以使用React Native提供的任何“可觸摸”組件構(gòu)建您自己的按鈕瘪吏。 “可觸摸”組件提供了捕捉敲擊手勢的能力,并且可以在識別手勢時顯示反饋蜗巧。但是掌眠,這些組件不提供任何默認(rèn)樣式,因此您需要做一些工作才能讓它們在您的應(yīng)用中很好地顯示幕屹。

您使用哪個“可觸摸”組件取決于您想要提供的反饋類型:

  • 通常蓝丙,您可以使用TouchableHighlight在任何地方使用網(wǎng)頁上的按鈕或鏈接。當(dāng)用戶按下按鈕時望拖,視圖的背景會變暗渺尘。
  • 您可以考慮在Android上使用TouchableNativeFeedback來顯示響應(yīng)用戶觸摸的墨水表面反應(yīng)波紋。
  • TouchableOpacity可用于通過減少按鈕的不透明度來提供反饋说敏,從而在用戶按下時可以看到背景鸥跟。
  • 如果您需要處理輕按手勢,但不想顯示任何反饋盔沫,請使用TouchableWithoutFeedback医咨。

在某些情況下,您可能需要檢測用戶何時按下并保持一定的時間架诞。這些長按可以通過將功能傳遞給任何“可觸摸”組件的onLongPress支柱來處理拟淮。

import React, { Component } from 'react';
import { Alert, Platform, StyleSheet, Text, TouchableHightlight, TouchableOpacity, TouchableNativeFeedback, TouchableWithoutFeedback, View, TouchableHighlight } from 'react-native';

export default class Touchables extends Component {
    _onPressButton() {
        Alert.alert('You tapped the button!');
    }

    _onLongPressButton() {
        Alert.alert('You long-pressed the button!');
    }

    render() {
        return (
            <View style={styles.container}>
                <TouchableHighlight onPress={this._onPressButton} underlayColor="white">
                    <View style={styles.button}>
                        <Text style={styles.buttonText}>TouchableHighlight</Text>
                    </View>
                </TouchableHighlight>
                <TouchableOpacity onPress={this._onPressButton}>
                    <View style={styles.button}>
                        <Text style={styles.buttonText}>TouchableOpacity</Text>
                    </View>
                </TouchableOpacity>
                <TouchableNativeFeedback
                    onPress={this._onPressButton}
                    background={Platform.OS === 'android' ? TouchableNativeFeedback.SelectableBackground() : ''}>
                    <View style={styles.button}>
                        <Text style={styles.buttonText}>TouchableNativeFeedback</Text>
                    </View>
                </TouchableNativeFeedback>
                <TouchableWithoutFeedback
                    onPress={this._onPressButton}
                    >
                    <View style={styles.button}>
                        <Text style={styles.buttonText}>TouchableWithoutFeedback</Text>
                    </View>
                </TouchableWithoutFeedback>
                <TouchableHighlight onPress={this._onPressButton} onLongPress={this._onLongPressButton} underlayColor="white">
                    <View style={styles.button}>
                        <Text style={styles.buttonText}>Touchable with Long Press</Text>
                    </View>
                </TouchableHighlight>
            </View>          
        );
    }
}

const styles = StyleSheet.create({
    container: {
        paddingTop: 60,
        alignItems: 'center'
    },
    button: {
        marginBottom: 30,
        width: 260,
        alignItems: 'center',
        backgroundColor: '#2196F3'
    },
    buttonText: {
        padding: 20,
        color: 'white'
    }
});
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侈贷,隨后出現(xiàn)的幾起案子惩歉,更是在濱河造成了極大的恐慌等脂,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撑蚌,死亡現(xiàn)場離奇詭異上遥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)争涌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門粉楚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亮垫,你說我怎么就攤上這事模软。” “怎么了饮潦?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵燃异,是天一觀的道長。 經(jīng)常有香客問我继蜡,道長回俐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任稀并,我火速辦了婚禮仅颇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碘举。我一直安慰自己忘瓦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布引颈。 她就那樣靜靜地躺著耕皮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪线欲。 梳的紋絲不亂的頭發(fā)上明场,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天汽摹,我揣著相機(jī)與錄音李丰,去河邊找鬼。 笑死逼泣,一個胖子當(dāng)著我的面吹牛趴泌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拉庶,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼嗜憔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氏仗?” 一聲冷哼從身側(cè)響起吉捶,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后呐舔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體币励,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年珊拼,在試婚紗的時候發(fā)現(xiàn)自己被綠了食呻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡澎现,死狀恐怖仅胞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剑辫,我是刑警寧澤干旧,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站妹蔽,受9級特大地震影響莱革,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讹开,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一盅视、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旦万,春花似錦闹击、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淆两,卻和暖如春断箫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秋冰。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工仲义, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剑勾。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓埃撵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虽另。 傳聞我的和親對象是個殘疾皇子暂刘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,512評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件捂刺、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,029評論 4 62
  • 一排排整齊的房屋谣拣,一條條干凈的馬路募寨,一盞盞明亮的路燈,一棵棵碩果累累的果樹森缠,這就是我居住的村莊景象…… ...
    辰洋閱讀 176評論 0 0
  • 文/春風(fēng)柳上歸 中華春果第一枝 櫻桃谷中千萬株 一樹櫻桃?guī)в昙t 綠葉駘蕩欲佛面 一簇櫻桃葉底紅 采摘盤中顆顆香
    春風(fēng)柳上歸閱讀 503評論 5 11
  • 目錄 1.市場背景 2.用戶需求與人群定位 3.產(chǎn)品定位與信息架構(gòu) 4.產(chǎn)品功能體驗 5.用戶體驗 6.總結(jié)與建議...
    游俠兒閱讀 8,211評論 5 28