react-navigation庆寺,刷新你的導(dǎo)航

在2017年1月蚊夫,新開(kāi)源的react-navigation庫(kù)備受矚目。它有類(lèi)似于原生版性能的體驗(yàn)效果止邮,可能會(huì)成為未來(lái)RN導(dǎo)航組件中的主力軍这橙。該庫(kù)包含三類(lèi)組件:
(1)StackNavigator:用來(lái)跳轉(zhuǎn)頁(yè)面和傳遞參數(shù)。stack就是數(shù)據(jù)結(jié)構(gòu)的堆棧技術(shù)导披,遵循后進(jìn)先出的原理屈扎。
(2)TabNavigator:類(lèi)似底部導(dǎo)航欄,用來(lái)在同一屏幕下切換不同界面
(3)DrawerNavigator:側(cè)滑菜單導(dǎo)航欄撩匕,用于輕松設(shè)置帶抽屜導(dǎo)航的屏幕

來(lái)朵花花

一鹰晨、屬性介紹

1.1StackNavigator屬性

  • navigationOptions:用于配置StackNavigator的一些屬性。
    • title:標(biāo)題止毕,如果設(shè)置了該屬性模蜡,導(dǎo)航欄和標(biāo)簽欄的title就會(huì)變成一樣。故不建議使用
    • header:設(shè)置一些導(dǎo)航的屬性扁凛,若想要隱藏頂部導(dǎo)航欄則只需要把這個(gè)屬性設(shè)置為null
    • headerTitle:設(shè)置導(dǎo)航欄標(biāo)題
    • headerBackTitle:設(shè)置跳轉(zhuǎn)頁(yè)面左側(cè)返回箭頭后面的文字忍疾,默認(rèn)是上一個(gè)頁(yè)面的標(biāo)題,當(dāng)然也可以自定義設(shè)置設(shè)置成null
    • headerTruncatedBackTitle:設(shè)置當(dāng)上個(gè)頁(yè)面標(biāo)題不符合返回箭頭后的文字時(shí)谨朝,默認(rèn)改成"返回"
    • headerRight:設(shè)置導(dǎo)航條右側(cè)卤妒。可以是按鈕或者是其他視圖控件
    • headerLeft:設(shè)置導(dǎo)航條右側(cè)字币≡蚺可以是按鈕或者是其他視圖控件
    • headerStyle:設(shè)置導(dǎo)航條的樣式,背景色及寬高等
    • headerTitleStyle:設(shè)置導(dǎo)航欄文字樣式
    • headerBackTitleStyle:設(shè)置導(dǎo)航欄"返回"的文字樣式
    • headerTintColor:設(shè)置導(dǎo)航欄顏色
    • headerPressColorAndroid:安裝獨(dú)有的設(shè)置顏色紋理洗出。當(dāng)然只有在安卓5.0以上才有效果
    • gesturesEnabled:是否支持滑動(dòng)返回手勢(shì)士复。iOS默認(rèn)支持,安卓默認(rèn)關(guān)閉
  • screen:對(duì)應(yīng)界面名稱(chēng)翩活,需要填入import之后的頁(yè)面
  • mode:定義跳轉(zhuǎn)風(fēng)格
    • card:使用iOS和安卓默認(rèn)的風(fēng)格阱洪。直接切換
    • modal:iOS獨(dú)有的使屏幕從底部拖出
  • headerMode:返回上級(jí)頁(yè)面時(shí)的動(dòng)畫(huà)效果
    • float:iOS的默認(rèn)效果
    • screen:滑動(dòng)過(guò)程中,整個(gè)頁(yè)面都會(huì)返回
    • none:無(wú)動(dòng)畫(huà)
  • cardStyle:自定義設(shè)置跳轉(zhuǎn)效果
    • transitionConfig:自定義設(shè)置滑動(dòng)返回的配置
    • onTransitionStart:當(dāng)轉(zhuǎn)換動(dòng)畫(huà)即將被調(diào)用的功能
    • onTransitionEnd:當(dāng)轉(zhuǎn)換動(dòng)畫(huà)完成時(shí)被調(diào)用的功能
  • path:路由中設(shè)置的路徑的覆蓋映射配置菠镇。path用于聲明一個(gè)界面路徑
  • initialRouteName:設(shè)置默認(rèn)的頁(yè)面組件澄峰,必須是已經(jīng)注冊(cè)的頁(yè)面組件
  • initailRouteParams:設(shè)置路由參數(shù)

1.2TabNavigator屬性

  • screen:和導(dǎo)航的功能一樣,對(duì)應(yīng)界面名稱(chēng)辟犀,可以在氣頭頁(yè)面通過(guò)這個(gè)screen傳值和跳轉(zhuǎn)
  • navigationOptions:配置TabNavigator的一些屬性
  • title:標(biāo)題,會(huì)同時(shí)設(shè)置導(dǎo)航條和標(biāo)簽欄的title
  • tabBarVisible:是否顯示標(biāo)簽欄。默認(rèn)是true不隱藏
  • tabBarIcon:設(shè)置標(biāo)簽欄的圖標(biāo)堂竟。需要給每一項(xiàng)都設(shè)置
  • tabBarLabel:設(shè)置標(biāo)簽欄的title

以下屬性配合導(dǎo)航使用

  • tabBarPosition:設(shè)置tabBar的位置魂毁,屬性值為top和bottom。iOS默認(rèn)在底部出嘹,安卓默認(rèn)在頂部

  • swipeEnabled:是否允許在標(biāo)簽之間進(jìn)行滑動(dòng)

  • animationEnabled:是否在更改標(biāo)簽時(shí)顯示動(dòng)畫(huà)

  • lazy:是否在app打開(kāi)的時(shí)候?qū)⒌撞康臉?biāo)簽欄全部加載席楚,默認(rèn)為flase。推薦打開(kāi)

  • trueInitialRouteName:設(shè)置默認(rèn)的頁(yè)面組件

  • backBehavior:按back鍵是否跳轉(zhuǎn)到第一個(gè)tab税稼,none為不跳轉(zhuǎn)

  • tabBarOptions:設(shè)置標(biāo)簽欄

  • 專(zhuān)屬iOS屬性

    • activeTintColor:設(shè)置在活躍狀態(tài)下烦秩,label和icon的前景色
    • activeBackgroundColor:label和icon的背景色
    • inactiveTintColor:設(shè)置在不活躍狀態(tài)下,label和icon的前景色
    • inactiveTintColor:設(shè)置在不活躍狀態(tài)下郎仆,label和icon的背景色
    • showLabel:是否顯示label只祠,默認(rèn)卡其style:tabbar的樣式
    • labelStyle:label的樣式
  • 安卓屬性

    • activeTintColor:label和icon的前景色 活躍狀態(tài)下
    • inactiveTintColor:label和icon的前景色 不活躍狀態(tài)下
    • showIcon:是否顯示圖標(biāo),默認(rèn)關(guān)閉
    • showLabel:是否顯示label扰肌,默認(rèn)開(kāi)啟 style:tabbar的樣式
    • labelStyle:label的樣式 upperCaseLabel:是否使標(biāo)簽大寫(xiě)抛寝,默認(rèn)為true
    • pressColor:material漣漪效果的顏色(安卓版本需要大于5.0)
    • pressOpacity:按壓標(biāo)簽的透明度變化(安卓版本需要小于5.0)
    • scrollEnabled:是否啟用可滾動(dòng)選項(xiàng)卡 tabStyle:tab的樣式
    • indicatorStyle:標(biāo)簽指示器的樣式對(duì)象(選項(xiàng)卡底部的行)。安卓底部會(huì)多出一條線曙旭,可以將height設(shè)置為0來(lái)暫時(shí)解決這個(gè)問(wèn)題
    • labelStyle:label的樣式
    • iconStyle:圖標(biāo)樣式

1.3DrawerNavigator屬性介紹

  • DrawerNavigatorConfig屬性
    • drawerWidth - 抽屜的寬度
    • drawerPosition - 選項(xiàng)是左或右盗舰。 默認(rèn)為左側(cè)位置
    • contentComponent - 用于呈現(xiàn)抽屜內(nèi)容的組件,例如導(dǎo)航項(xiàng)桂躏。 接收抽屜的導(dǎo)航钻趋。 默認(rèn)為DrawerItems
    • contentOptions - 配置抽屜內(nèi)容
    • initialRouteName - 初始路由的routeName
    • order - 定義抽屜項(xiàng)目順序的routeNames數(shù)組。
      路徑 - 提供routeName到路徑配置的映射剂习,它覆蓋routeConfigs中設(shè)置的路徑蛮位。
    • backBehavior - 后退按鈕是否會(huì)切換到初始路由? 如果是进倍,設(shè)置為initialRoute土至,否則為none。 默認(rèn)為initialRoute行為
    • DrawerItems的contentOptions屬性
    • activeTintColor - 活動(dòng)標(biāo)簽的標(biāo)簽和圖標(biāo)顏色
    • activeBackgroundColor - 活動(dòng)標(biāo)簽的背景顏色
    • inactiveTintColor - 非活動(dòng)標(biāo)簽的標(biāo)簽和圖標(biāo)顏色
    • inactiveBackgroundColor - 非活動(dòng)標(biāo)簽的背景顏色
      內(nèi)容部分的樣式樣式對(duì)象
    • labelStyle - 當(dāng)您的標(biāo)簽是字符串時(shí)猾昆,要覆蓋內(nèi)容部分中的文本樣式的樣式對(duì)象

二陶因、案例

2.1StackNavigation案例

  • 集成第三方庫(kù)
    使用npm安裝react-navigation庫(kù),--save表示將該組件寫(xiě)入到package.json文件中垂蜗。
npm install react-navigation --save

當(dāng)然楷扬,也可以采用yarn工具將該庫(kù)添加到項(xiàng)目中

 yarn add react-navigation
  • 導(dǎo)入組件到項(xiàng)目中

    本項(xiàng)目創(chuàng)建于0.49.2的環(huán)境中,這次RN對(duì)該版本做了重大改進(jìn)贴见。安卓端和iOS的文件混合成為index.js文件烘苹。而文件App.js注冊(cè)到了又注冊(cè)到了index.js文件。故我們將需要用到的代碼編寫(xiě)在App.js文件中片部。

import {StackNavigator} from 'react-navigation';
  • 創(chuàng)建導(dǎo)航镣衡,并且添加路由
import HomeScreen from './HomeScreen'; //導(dǎo)入需要展示的頁(yè)面
const  Navigator = StackNavigator(
//設(shè)置導(dǎo)航要展示的頁(yè)面
    {
       HomeScreen:{screen:HomeScreen}   
    },
    //設(shè)置navigationOptions屬性對(duì)象
    {
      navigationOptions: {
        title: '標(biāo)題', //在導(dǎo)航中顯示的標(biāo)題內(nèi)容
        headerBackTitle:null,
        headerTintColor:'#333333',
        showIcon:true,
        swipeEnabled:false,
        animationEnabled:false,
      },
      mode:'card',  //設(shè)置mode屬性
    }
);
  • 在render函數(shù)中返回導(dǎo)航
export default class App extends Component<{}> {
  render() {
    return (
       <Navigator/>
    );
  }
}
  • HomeScreen.js代碼實(shí)現(xiàn)
import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    AppRegistry,
    Text,
    View
} from 'react-native';

export default class HomeScreen extends Component {
    render(){
        return(
            <View style={{flex:1,backgroundColor:'pink'}}>
                <Text>你好啊 在干嘛呢</Text>
            </View>
        );
    }
}
效果圖

下面可以來(lái)做導(dǎo)航的跳轉(zhuǎn)操作
為了實(shí)現(xiàn)跳轉(zhuǎn)操作的功能,需要先新建一個(gè)頁(yè)面,并且將這個(gè)頁(yè)面添加到導(dǎo)航中去廊鸥。

  • 導(dǎo)入頁(yè)面到App.js文件
import ChatScreen from './ChatScreen'  //新建的文件
const  Navigator = StackNavigator(
    {
       HomeScreen:{screen:HomeScreen},
       ChatScreen:{screen:ChatScreen}  //這是新添加的導(dǎo)航界面
  • 跳轉(zhuǎn)操作

只要界面加入到了導(dǎo)航當(dāng)中望浩,組件中就會(huì)自動(dòng)添加navigation的navigate屬性。使用該屬性可以跳轉(zhuǎn)到下一個(gè)界面惰说。下面是HomeScreen中的代碼磨德。ChatScreen是第二個(gè)導(dǎo)航界面。在HomeScreen中添加一個(gè)button組件,使用routeName路由名稱(chēng)ChatScreen關(guān)聯(lián)到組件ChatScreen.

export default class HomeScreen extends Component {

    render(){
        return(
            <View style={{flex:1,backgroundColor:'pink'}}>
                <Text>你好啊 在干嘛呢</Text>
                <Button
                  onPress={()=>this.props.navigation.navigate('ChatScreen')}
                  title={"chat with lucy"}
                />
            </View>
        );
    }
}
  • 返回操作

當(dāng)?shù)诙€(gè)界面想要回歸到上一個(gè)界面時(shí)吆视,也要用到navigation的goBack屬性典挑。當(dāng)然導(dǎo)航有自身的返回按鈕。以下代碼是ChatScreen組件的代碼啦吧,當(dāng)用戶(hù)組件Text也會(huì)返回到上一個(gè)界面您觉。

export default class ChatScreen extends Component {
    static navigationOptions = {
        title: 'Chat with Lucy',
    };
    render() {
        return (
            <View>
                <Text onPress={()=>this.props.navigation.goBack()}>Chat with Lucy</Text>
            </View>
        );
    }
}
效果圖
  • 傳遞參數(shù)
    在ChatScreen頁(yè)面中,如果直接寫(xiě)死標(biāo)題則不利于代碼的可維護(hù)性丰滑。所以我們可以在導(dǎo)航的時(shí)候傳遞參數(shù)顾犹。首先編輯一下HomeScreen組件,傳遞自定義的屬性u(píng)ser參數(shù)到路由中去褒墨。
export default class HomeScreen extends Component {
    render(){
        const { navigate } = this.props.navigation;
        return(
            <View style={{flex:1,backgroundColor:'pink'}}>
                <Text>你好啊 在干嘛呢</Text>
                <Button
                  onPress={()=>navigate('ChatScreen',{user:'dudu'})}
                  title={"chat with lucy"}
                />
            </View>
        );
    }
}

之后可以編輯ChatScreen組件顯示的user參數(shù)炫刷,這個(gè)參數(shù)通過(guò)route來(lái)傳遞。為了代碼的健壯性郁妈,如果外界的user屬性有值浑玛,就將user賦值給title。如果沒(méi)有則讓title為空噩咪。
設(shè)置導(dǎo)航右邊的菜單顾彰,設(shè)置一個(gè)“返回”的文字

static navigationOptions =({ navigation, screenProps }) => ({
    title: navigation.state.params?navigation.state.params.user:null,
    headerRight:(
        <Text onPress={navigation.state.params?navigation.state.params.navigatePress:null}>
            返回
        </Text>
    )
});
  • 外界傳值

我們也可以將外界的參數(shù)傳遞給函數(shù)內(nèi)部。下面的代碼采用結(jié)構(gòu)賦值的方法胃碾,取出導(dǎo)航中狀態(tài)機(jī)的參數(shù)params涨享,取出參數(shù)中的user,一樣可以拿到外界參數(shù)仆百。

 render() {
        const {params} = this.props.navigation.state;
        return (
            <View>
                <Text onPress={()=>this.props.navigation.goBack()}>Chat with {params.user}</Text>
            </View>
        );
    }
效果圖

2.2 TabNavigator案例

react-navigation組件除了可以用做頁(yè)面間的跳轉(zhuǎn)厕隧,當(dāng)然也可以用做tab界面之間的切換。

  • 導(dǎo)入react-navigation的子組件俄周。這些組件分別是用于界面切換吁讨、跳轉(zhuǎn)、和標(biāo)簽欄外置的擺放峦朗。
import {StackNavigator,TabNavigator,TabBarBottom} from 'react-navigation';
  • 封裝一個(gè)TabBarItem建丧,用于設(shè)置每個(gè)tab的圖片
import React,{Component} from 'react';
import {Image} from 'react-native';

export default class TabBarItem extends Component {

    render() {
        return(
            <Image source={ this.props.focused ? this.props.selectedImage : this.props.normalImage }
                   style={ { tintColor:this.props.tintColor,width:25,height:25 } }
            />
        )
    }

}
  • 導(dǎo)入封裝的TabBarItem組件 表示TabBar的每一項(xiàng)
import TabBarItem from './TabBarItem';
  • 定義TabNavigator。定義幾個(gè)要切換的tab波势,每個(gè)tab設(shè)置好對(duì)應(yīng)要顯示的屏幕翎朱。當(dāng)然橄维,從之前介紹的屬性可知,TabNavigator也擁有navigationOptions屬性闭翩,它由系統(tǒng)傳入navigation參數(shù)挣郭,之后來(lái)設(shè)置其他的子屬性。比如說(shuō)tabBarLabel設(shè)置每個(gè)tab的標(biāo)題疗韵,tabBarIcon設(shè)置選中和非選中的圖片。
    之后再設(shè)置其它每個(gè)tab共同的屬性侄非,用一個(gè)對(duì)象表示蕉汪。
const Tab = TabNavigator({
  Home:{
    screen:HomeScreen,
    navigationOptions:({navigation}) => ({
      tabBarLabel:'首頁(yè)',
      tabBarIcon:({focused,tintColor}) => (
          <TabBarItem
              tintColor={tintColor}
              focused={focused}
              normalImage={require('./imgs/ic_like_sel.png') }
              selectedImage={require('./imgs/ic_mine_sel.png')}
          />
      )
    }),
  },

  Mine:{
    screen:MineScreen,
    navigationOptions:({navigation}) => ({
      tabBarLabel:'我',
      tabBarIcon:({focused,tintColor}) => (
          <TabBarItem
              tintColor={tintColor}
              focused={focused}
              normalImage={require('./imgs/ic_like_sel.png')}
              selectedImage={require('./imgs/ic_like_sel.png')}
          />
      )
    }),
  },
},

    {
      tabBarComponent:TabBarBottom,
      tabBarPosition:'bottom',
      swipeEnabled:false,
      animationEnabled:false,
      lazy:true,
      tabBarOptions:{
        activeTintColor:'#06c1ae',
        inactiveTintColor:'#979797',
        style:{backgroundColor:'#ffffff',},
        labelStyle: {
          fontSize: 20, // 文字大小
        },
      }
});
  • 將tab放入到Navigator中
const Navigator = StackNavigator(
    {
        Tab:{screen:Tab},

    },

    {
        navigationOptions:{
            // title:'首頁(yè)',
            headerBackTitle:null,
            headerTintColor:'#333333',
            showIcon:true,
            swipeEnabled:false,
            animationEnabled:false,
        },

        mode:'card',
    });
  • 在render方法中返回導(dǎo)航組件
export default class App extends Component<{}> {
  render() {
    return (
     <Navigator/>
    );
  }
}
  • HomePage和MinePage的代碼

StackNavigator還提供了onNavigationStateChange回調(diào)方法,用來(lái)監(jiān)聽(tīng)導(dǎo)航狀態(tài)的改變

import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    Text,
    View
} from 'react-native';
export default class HomePage extends Component {

    static navigationOptions = {
        title:'首頁(yè)',
    };

    render() {
        return(
            <View style={{flex:1,backgroundColor:'yellow'}}>
                <Text onPress={this._skip.bind(this)}>點(diǎn)擊跳轉(zhuǎn)</Text>
            </View>
        );
    }

    _skip() {
        this.props.navigation.navigate("Mine");
    }
}
import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    Text,
    View
} from 'react-native';
export default class MinePage extends Component {

    static navigationOptions = {
        title:'我',
    };

    render() {
        return(
            <View style={{flex:1,backgroundColor:'pink'}}>
                <Text onPress={this._skip.bind(this)}>MinePage</Text>
            </View>
        );
    }

    /**
     * 跳轉(zhuǎn)
     */
    _skip() {
        this.props.navigation.goBack();
    }
}
效果圖

2.3DreawerNavigator抽屜導(dǎo)航

DrawerNavigator是一個(gè)抽屜導(dǎo)航逞怨。設(shè)置方式其實(shí)跟設(shè)置Tab差不多者疤。只是需要設(shè)定某些特殊的屬性。比如說(shuō)drawerLabel叠赦、drawerIcon驹马、drawerWidth、drawerPosition等等除秀。

  • 定義抽屜導(dǎo)航
    HomeScreen與MineScree是導(dǎo)入外界的兩個(gè)界面糯累,將它們定義到DrawerNavigator中。在抽屜導(dǎo)航中册踩,將組件的屬性也一起設(shè)置好泳姐。
import {DrawerNavigator} from 'react-navigation';
import HomeScreen from './Pages/HomePage';
import MineScreen from './Pages/MinePage';

const MyApp = DrawerNavigator({
    Home: {
        screen: HomeScreen,
    },
    Mine: {
        screen:MineScreen,
    },
},
    {
        drawerWidth: 200, // 抽屜寬
        drawerPosition: 'left', // 抽屜在左邊還是右邊
        contentOptions: {
            initialRouteName: 'Home', // 默認(rèn)頁(yè)面組件
            activeTintColor: 'white',  // 選中文字顏色
            activeBackgroundColor: '#ff8500', // 選中背景顏色
            inactiveTintColor: '#666',  // 未選中文字顏色
            inactiveBackgroundColor: '#fff', // 未選中背景顏色
            style: {  // 樣式

            }
        }
    }
);
  • 在render方法中返回抽屜組件
export default class App extends Component<{}> {
    // static navigationOptions={
    //     title:'app',
    //     gesturesEnabled:false,
    //     header:null,
    // }

    render() {
        return (
            <View style = {{flex:1,marginTop:20,}}>

                <MyApp />
            </View>
        );
    }
}
  • 設(shè)置HomePage子頁(yè)面的屬性
    一旦加入了導(dǎo)航組件react-navigation,那么其頁(yè)面就會(huì)有navigationOptions屬性。我們可以在這個(gè)屬性里面設(shè)置抽屜導(dǎo)航的樣式暂吉。
export default class HomePage extends Component<{}> {
    static navigationOptions = {
        drawerLabel: 'Home',
        drawerIcon: ({ tintColor }) => (
            <Image
                source={require('.././imgs/ic_like_sel.png')}
                style={[styles.icon, {tintColor: tintColor}]}
            />
        ),
    };
}
  • 返回HomePage頁(yè)面要展示的組件
    用navigation的navigate屬性可以跳轉(zhuǎn)到指定的頁(yè)面胖秒。如果指定的是DrawerOpen,意思就是打開(kāi)抽屜慕的。
render() {
        return (
            <View>
                <Button
                    onPress={() => this.props.navigation.navigate('Mine')}
                    title="Go to Mine"
                />
                <Button
                    onPress={()=>this.props.navigation.navigate('DrawerOpen')}
                    title="open the draw"
                />
            </View>
        );
    }
  • 設(shè)置樣式
const styles = StyleSheet.create({
    icon: {
        width: 24,
        height: 24,
    },
});
  • 設(shè)置MinePage頁(yè)面
    MinePage頁(yè)面和HomePage頁(yè)面相差不大阎肝。只是做代碼演示而已,這里不再闡述
import React, { Component } from 'react';
import {
    Platform,
    StyleSheet,
    Text,
    View,
    Image,
    Button
} from 'react-native';
export default class MineScreen extends Component<{}> {
    static navigationOptions = {
        drawerLabel: 'Mine',
        drawerIcon: ({ tintColor }) => (
            <Image
                source={require('.././imgs/ic_mine_sel.png')}
                style={[styles.icon, {tintColor: tintColor}]}
            />
        ),
    };

    render() {
        return (
            <View>
                <Button
                    onPress={() => this.props.navigation.goBack()}
                    title="Go back home"
                />

                <Button
                    onPress={()=>this.props.navigation.navigate('DrawerOpen')}
                    title="open the draw"
                />
            </View>
        );
    }
}
const styles = StyleSheet.create({
    icon: {
        width: 24,
        height: 24,
    },
});

效果圖如下:

效果圖

非寧?kù)o無(wú)以致遠(yuǎn)肮街,非淡泊無(wú)以明志风题。在學(xué)習(xí)的道路上,多少會(huì)遇到泥濘挫折低散。我可以放慢腳步俯邓,但絕能不回頭,我的夢(mèng)想熔号,在路上稽鞭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市引镊,隨后出現(xiàn)的幾起案子朦蕴,更是在濱河造成了極大的恐慌篮条,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吩抓,死亡現(xiàn)場(chǎng)離奇詭異涉茧,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)疹娶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)伴栓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人雨饺,你說(shuō)我怎么就攤上這事钳垮。” “怎么了额港?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵饺窿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我移斩,道長(zhǎng)肚医,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上嗽冒,老公的妹妹穿的比我還像新娘。我一直安慰自己糠排,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布超升。 她就那樣靜靜地躺著入宦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪室琢。 梳的紋絲不亂的頭發(fā)上乾闰,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音盈滴,去河邊找鬼涯肩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛巢钓,可吹牛的內(nèi)容都是我干的病苗。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼症汹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼硫朦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起背镇,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤咬展,失蹤者是張志新(化名)和其女友劉穎泽裳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體破婆,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涮总,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祷舀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瀑梗。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖裳扯,靈堂內(nèi)的尸體忽然破棺而出夺克,到底是詐尸還是另有隱情,我是刑警寧澤嚎朽,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站柬帕,受9級(jí)特大地震影響哟忍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陷寝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一锅很、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凤跑,春花似錦爆安、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至咖耘,卻和暖如春翘簇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背儿倒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工版保, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夫否。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓彻犁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凰慈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汞幢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評(píng)論 25 707
  • react-navigation導(dǎo)航組件使用詳解 注意了,如果有小伙伴們發(fā)現(xiàn)運(yùn)行作者提供的react-naviga...
    光強(qiáng)_上海閱讀 23,436評(píng)論 38 103
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案溉瓶? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,734評(píng)論 1 92
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)急鳄、插件谤民、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,058評(píng)論 4 62
  • 其實(shí)张足,要想成為有錢(qián)人其實(shí)很簡(jiǎn)單:當(dāng)你身邊都是有錢(qián)人的時(shí)候,你也一定會(huì)成為有錢(qián)人坎藐。 美國(guó)前總統(tǒng)克林頓原來(lái)是吹薩卡斯...
    她極美的靈魂閱讀 2,254評(píng)論 0 2