• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    React Navigation 使用中遇到的問題小結

    來源:懂視網 責編:小采 時間:2020-11-27 22:15:02
    文檔

    React Navigation 使用中遇到的問題小結

    React Navigation 使用中遇到的問題小結:在React Native的開發中,使用到react navigation框架時遇到了不少問題。主要是安卓和iOS中相對不協調的地方,特此記錄 一、Navigation Bar 使用navigationbar的時候遇到如下的問題 1.navigation bar的底部有一條黑線 本意做一個bar的顏色和頁
    推薦度:
    導讀React Navigation 使用中遇到的問題小結:在React Native的開發中,使用到react navigation框架時遇到了不少問題。主要是安卓和iOS中相對不協調的地方,特此記錄 一、Navigation Bar 使用navigationbar的時候遇到如下的問題 1.navigation bar的底部有一條黑線 本意做一個bar的顏色和頁

    在React Native的開發中,使用到react navigation框架時遇到了不少問題。主要是安卓和iOS中相對不協調的地方,特此記錄

    一、Navigation Bar

    使用navigationbar的時候遇到如下的問題

    1.navigation bar的底部有一條黑線

    本意做一個bar的顏色和頁面顏色一致的頁面。只有頂部有兩個其他按鈕的時候。發現bar的底部有一條黑線。導致bar不能很好的匹配想要的頁面效果。在header中設置一下代碼中后可去除

    static navigationOptions = {
     ...
     headerStyle: {
     ...
     borderBottomWidth: 0,
     },
     }
    

    2. android 的 Bar底部有一條陰影,自定義Bar背景圖無法填充滿

    react navigation bar在安卓中默認會有一個高度。帶來的視覺效果是底部會有一條陰影。而且造成另外一個比較頭疼的效果是如果使用了帶背景圖的自定義Bar時。會發現背景圖有覆蓋不全的效果。兩側總有一些間隙。iOS中則不會出現此問題。將elevation屬性置零后可解決這個問題

     static navigationOptions = {
     ...
     headerStyle: {
     ...
     elevation: 0,
     },
     }
    

    3.android 中Bar標題居中問題

    在安卓中,bar 的標題是居左的。iOS則默認居中。可以通過以下寫法居中

    static navigationOptions = {
     ...
     headerTitleStyle: {
     //此屬性是標題的Style屬性。可以接受<Text>標簽的style
     ...
     alignSelf: "center",
     },
     }
    

    在左側沒有按鍵的時候。這樣寫就足夠了。但是如果左側有個返回鍵或者自定義的其他按鍵。在安卓中標題就會發生偏移。解決辦法是右側添加一個空按鈕

    static navigationOptions = {
     ...
     headerRight: <View />
     }
    

    4.帶背景圖的Navgation Bar

    與源生不同。react navigation bar中并沒有背景圖這一屬性。也就是說我們要使用帶背景圖的navigation bar的時候必須要使用自定義的view。

    import {Header} from "react-navigation";
    //header 需導入
    const ImageHeader = props => (
     <View>
     <Image
     style={{position: "absolute", zIndex: -1, width: "100%", height: "100%", resizeMode: "cover"}}
     source={require(...)}
     />
     <Header {...props} style={{backgroundColor: "transparent"}} />
     </View>
    );
    
    static navigationOptions = {
     ...
     headerStyle: {
     //背景顏色必須為透明,不然無法透出底部圖片
     backgroundColor: "transparent",
     //安卓中不添加此屬性會導致背景圖無法鋪滿
     elevation: 0,
     },
     header: props => {
     return <ImageHeader {...props} />;
     },
     }
    

    5.當StackNavigator與DrawerNavigator嵌套使用時手勢沖突問題

    當DrawerNavigator嵌套StackNavigator時。進入StackNav的二級界面后返回手勢與打開DrawerNav打開菜單沖突。

    static navigationOptions = {
     ...
     //禁止打開菜單
     drawerLockMode: "locked-closed", 
     //允許使用返回手勢
     gesturesEnabled: true,
     }
    

    此設置按照需求自行修改

    5.Navgation Bar高度不一致問題

    使用自定義的Bar時。安卓和iOS高度不一致。Android計算Nav高度是從手機頂部開始計算。而iOS默認會向下偏移狀態欄的高度。要做到效果統一。需要將安卓的Bar的paddingTop屬性設為狀態欄高度

    import {StatusBar, Platform} from "react-native";
    navigationOptions = {
     ...
     headerStyle: {
     ...
     paddingTop: Platform.OS === "ios" ? 0 : StatusBar.currentHeight,
     },
     }
    
    

    6.navigation Bar上使用自定義按鈕

    使用headerRight 或者 headerLeft 可以定制按鈕或者View

    static navigationOptions = {
     ...
     headerRight = (<TouchableOpacity style={{marginRight: 10}} onPress={...}>
     <Text style={styles.NavSureButton}>btn</Text>
     </TouchableOpacity>)
     }
    

    但是如果onPress方法要用到this.props、this.state或者是類中的其他方法的時候就會出現問題

    在每個頁面的類中,我們使用static navigationOptions={...}來配置navigation的一些配置。但是由于static 修飾的屬性屬于類的靜態屬性。無法調用this的屬性方法。所以我們需要使用this.props.navigation.setParams({key:value ...})方法來設置header按鈕的點擊事件。

    class Demo extends React,Component{
     componentWillMount() {
     //綁定方法
     this.props.navigation.setParams({rightOnPress: this.rightBtnOnPress});
     }
     //點擊方法
     rightBtnOnPress = ()=>{
     ...
     }
     static navigationOptions = ({navigation}) => {
     const params = navigation.state.params || {};
     let navigationOptions = {
     ...
     headerRight = (<TouchableOpacity style={{marginRight: 10}} onPress={params.rightOnPress}>
     <Text style={styles.NavSureButton}>btn</Text>
     </TouchableOpacity>)
     }
     return navigationOptions;
     };
     ...
    }
    

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    React Navigation 使用中遇到的問題小結

    React Navigation 使用中遇到的問題小結:在React Native的開發中,使用到react navigation框架時遇到了不少問題。主要是安卓和iOS中相對不協調的地方,特此記錄 一、Navigation Bar 使用navigationbar的時候遇到如下的問題 1.navigation bar的底部有一條黑線 本意做一個bar的顏色和頁
    推薦度:
    標簽: 問題 遇到 總結
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲精品欧美精品日韩精品| 中文字幕精品无码一区二区三区| 国产精品哟女在线观看| 亚洲精品无码av人在线观看 | 亚洲国产精品不卡在线电影| 亚洲精品自产拍在线观看| 久久se精品一区二区影院 | 亚洲AV第一页国产精品| 久久国产综合精品五月天| 四虎永久在线精品国产免费| 精品人妻va出轨中文字幕| 在线精品亚洲| 日本精品一区二区三区在线视频一 | 亚洲国产精品自在拍在线播放| 国产乱子伦精品免费视频| 欧美巨大黑人精品videos| 500av导航大全精品| 久久国产精品无码一区二区三区 | 国产精品禁18久久久夂久| 亚洲国产成人一区二区精品区| 日批日出水久久亚洲精品tv| 精品国产午夜福利在线观看| 国产成人高清精品一区二区三区| 丝袜美腿国产精品视频一区| 精品午夜久久福利大片| 99精品视频在线观看re| 国产精品VA在线观看无码不卡| 久久国产精品一国产精品金尊 | 国产玖玖玖九九精品视频| 99爱在线视频这里只有精品| 久久九九有精品国产23百花影院| 99久久精品国产麻豆| 国产精品久久久久久影院| 91精品国产91久久久久福利| 国产99视频精品免视看7| 91精品欧美综合在线观看| 久久91精品国产91久久小草| 久久亚洲国产精品一区二区| 91av国产精品| 精品无码久久久久久国产| 久久99精品久久久久久秒播|