ConstraintLayout基本使用

使用前先在 build.gradle 文件中添加:

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

一吐绵、屬性介紹


ConstraintLayout 基礎(chǔ)屬性和 RelativeLayout 屬性對(duì)比:

ConstraintLayout RelativeLayout 作用
layout_constraintLeft_toLeftOf layout_alignLeft 與目標(biāo)組件左對(duì)齊
layout_constraintLeft_toRightOf layout_toRightOf 在目標(biāo)組件的右邊
layout_constraintRight_toRightOf layout_alignRight 與目標(biāo)組件右對(duì)齊
layout_constraintRight_toLeftOf layout_toLeftOf 在目標(biāo)組件的左邊
layout_constraintTop_toTopOf layout_alignTop 與目標(biāo)組件上對(duì)齊
layout_constraintTop_toBottomOf layout_below 在目標(biāo)組件底部
layout_constraintBottom_toBottomOf layout_alignBottom 與目標(biāo)組件下對(duì)齊
layout_constraintBottom_toTopOf layout_above 在目標(biāo)組件的上部
layout_constraintBaseline_toBaselineOf layout_alignBaseline 與目標(biāo)組件基線對(duì)齊

對(duì)于和left弓柱、right相似的start、end基礎(chǔ)的屬性,這里不再贅述,大家可以自行查閱。當(dāng)然了塔粒,除了一些基礎(chǔ)的屬性,ConstraintLayout也有自己特有的屬性筐摘,這里向大家介紹一下常用的屬性:

1. bias(偏移量)

長(zhǎng)度和高度的偏移量

屬性 介紹
layout_constraintHorizontal_bias 水平方向的偏移量(小數(shù))
layout_constraintVertical_bias 豎直方向的偏移量(小數(shù))

2. Circular positioning(圓形定位)

以一個(gè)控件為圓心設(shè)置角度和半徑定位

屬性 介紹
layout_constraintCircle 關(guān)聯(lián)另一個(gè)控件卒茬,將另一個(gè)控件放置在自己圓的半徑上,會(huì)和下面兩個(gè)屬性一起使用
layout_constraintCircleRadius 圓的半徑
layout_constraintCircleAngle 圓的角度

3. Percent dimension(百分比布局)

寬高設(shè)置百分比長(zhǎng)度

屬性 介紹
layout_constraintWidth_default 寬度類型設(shè)置咖熟,可以設(shè)置percent圃酵、spread和wrap
layout_constraintHeight_default 高度類型設(shè)置,同上
layout_constraintWidth_percent 如果layout_constraintWidth_percent設(shè)置的百分比馍管,這里設(shè)置小數(shù)郭赐,為占父布局寬度的多少
layout_constraintHeight_percent 設(shè)置高度的大小,同上

4. Ratio(比例)

控件的寬和高設(shè)置一定比例

屬性 介紹
layout_constraintDimensionRatio 寬高比

5. Chain Style(約束鏈類型)

設(shè)置約束鏈類型确沸,約束鏈類型包括:spread捌锭,spread_inside和packed

屬性 介紹
layout_constraintHorizontal_chainStyle 橫向約束鏈
layout_constraintVertical_chainStyle 縱向約束鏈

二俘陷、具體使用


1.Percent dimension

如果將ImageView的寬度設(shè)置為父布局寬度的70%,這個(gè)時(shí)候我們就可以考慮使用百分比屬性了观谦,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.AppCompatImageView
        android:layout_width="0dp"
        android:layout_height="200dp"
        app:layout_constraintWidth_default="percent"
        app:layout_constraintWidth_percent="0.7"
        android:src="@mipmap/ic_launcher"
        android:scaleType="centerCrop"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>

效果:


可以看到拉盾,我們這里先將layout_constraintWidth_default屬性設(shè)置為percent,接著將layout_constraintWidth_percent設(shè)置為0.7豁状,同理捉偏,我們可以對(duì)layout_constraintHeight_default和layout_constraintHeight_percent進(jìn)行高度的設(shè)置。這里需要注意的是:

  • 需要先將布局約束之后泻红,才可以進(jìn)行寬度或者高度的設(shè)置夭禽,如上述代碼,我們先添加了app:layout_constraintTop_toTopOf="parent"和app:layout_constraintLeft_toLeftOf="parent"谊路,將ImageView設(shè)置在左上角讹躯,如果沒(méi)有先進(jìn)行控件的約束,會(huì)發(fā)現(xiàn)我們的設(shè)置的百分比這個(gè)屬性沒(méi)有起作用缠劝。后面的很多屬性也是如此蜀撑,需要先對(duì)控件進(jìn)行約束,才能對(duì)我們的控件設(shè)置一些屬性剩彬。

2.居中和偏移(bias(偏移量))

在RelativeLayout中,把控件放在布局中間的方法是把layout_centerInParent設(shè)為true矿卑,而在ConstraintLayout中的寫(xiě)法是:

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"

意思是把控件的上下左右約束在布局的上下左右喉恋,這樣就能把控件放在布局的中間了。同理RelativeLayout中的水平居中l(wèi)ayout_centerHorizontal相當(dāng)于在ConstraintLayout約束控件的左右為parent的左右母廷;RelativeLayout中的垂直居中l(wèi)ayout_centerVertical相當(dāng)于在ConstraintLayout約束控件的上下為parent的上下轻黑。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.AppCompatImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@mipmap/welfare"
        android:scaleType="centerCrop"
        app:layout_constraintVertical_bias="0.2"
        app:layout_constraintHorizontal_bias="0.1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>

效果:


app:layout_constraintHorizontal_bias="0.1"代表水平方向往右偏移10%,app:layout_constraintVertical_bias="0.2"代表豎直方向往下偏移20%琴昆。

  • 想要設(shè)置偏移氓鄙,必須先將控件設(shè)置父布局居中。

3.比例(Ratio)

將控件比如ImageView設(shè)置長(zhǎng):寬=2:1

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.AppCompatImageView
        android:layout_width="200dp"
        android:layout_height="0dp"
        android:src="@mipmap/welfare"
        android:scaleType="centerCrop"
        app:layout_constraintDimensionRatio="2:1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>

效果:


如果需要按照比例設(shè)置控件业舍,這里需要先將layout_width或者layout_height一方設(shè)置為0dp抖拦,另一個(gè)設(shè)置為正常比例,接著給layout_constraintDimensionRatio設(shè)置比例舷暮,例如app:layout_constraintDimensionRatio="2:1".

4.chain(約束鏈)

Chain 鏈?zhǔn)且环N特殊的約束讓多個(gè) chain 鏈連接的 Views 能夠平分剩余空間位置态罪。在 Android 傳統(tǒng)布局特性里面最相似的應(yīng)該是 LinearLayout 中的權(quán)重比 weight ,但 Chains 鏈能做到的遠(yuǎn)遠(yuǎn)不止權(quán)重比 weight 的功能下面。

約束鏈的三種類型复颈,分別是spread、spread_inside和packed:

  • spread:視圖均勻分布沥割。
  • spread_inside:除了約束鏈的頭部和尾部貼在兩邊的約束上耗啦,其余均勻分布凿菩。
  • packed:將視圖打包在一起,默認(rèn)居中帜讲。

以spread為例衅谷,我們看一下代碼:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 在第一個(gè)控件設(shè)置chain_style,第一個(gè)和最后一個(gè)TextView也要設(shè)置
   好約束舒帮,上下控件也要互為約束 -->
    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/txt1"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        app:layout_constraintHorizontal_chainStyle="spread"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/txt2"
        android:layout_width="wrap_content"
        android:text="txt1"
        android:layout_height="wrap_content"/>

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/txt2"
        android:layout_width="wrap_content"
        android:layout_marginTop="16dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/txt1"
        app:layout_constraintRight_toLeftOf="@+id/txt3"
        android:text="txt2"
        android:layout_height="wrap_content"/>

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/txt3"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_width="wrap_content"
        android:layout_marginTop="16dp"
        app:layout_constraintLeft_toRightOf="@+id/txt2"
        android:text="txt3"
        android:layout_height="wrap_content"/>

</android.support.constraint.ConstraintLayout>

效果:


textView 中的約束屬性 app:layout_constraintHorizontal_chainStyle="spread" 就是指定了鏈模式 spread 你可以通過(guò)修改成 spread inside 或 packed 來(lái)切換鏈模式会喝,而且這個(gè)約束屬性必須在鏈頭,即是鏈組件中的第一個(gè)組件玩郊。

spread_inside 效果:

packed 效果:

Chain Style

在鏈條里面肢执,可以使用weight和bias:

  • spread + weight-將元素的尺寸設(shè)置為MATCH_CONSTRAINT時(shí),可以與weight平分空間
  • packed + bias- 前面說(shuō)過(guò)bias是偏移的意思译红,這里就是將鏈條集體偏移预茄。

5.Guideline

Guideline是只能用在ConstraintLayout布局里面的一個(gè)工具類,用于輔助布局侦厚,類似為輔助線耻陕,可以設(shè)置android:orientation屬性來(lái)確定是橫向的還是縱向的

  • 當(dāng)設(shè)置為vertical的時(shí)候,Guideline的寬度為0刨沦,高度是parent也就是ConstraintLayout的高度
  • 同樣設(shè)置為horizontal的時(shí)候诗宣,高度為0,寬度是parent的寬度

重要的是Guideline是不會(huì)顯示到界面上的想诅,默認(rèn)是GONE的召庞。

Guideline還有三個(gè)重要的屬性,每個(gè)Guideline只能指定其中一個(gè):

  • layout_constraintGuide_begin来破,指定左側(cè)或頂部的固定距離篮灼,如100dp,在距離左側(cè)或者頂部100dp的位置會(huì)出現(xiàn)一條輔助線
  • layout_constraintGuide_end徘禁,指定右側(cè)或底部的固定距離诅诱,如30dp,在距離右側(cè)或底部30dp的位置會(huì)出現(xiàn)一條輔助線
  • layout_constraintGuide_percent送朱,指定在父控件中的寬度或高度的百分比娘荡,如0.8,表示距離頂部或者左側(cè)的80%的距離骤菠。

示例:

<android.support.constraint.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/guidelineBegin"
    app:layout_constraintGuide_begin="100dp"
    android:orientation="vertical"/>
<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button"
    app:layout_constraintLeft_toLeftOf="@+id/guidelineBegin"
    android:layout_marginTop="16dp"
    app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/guidelineEnd"
    app:layout_constraintGuide_end="100dp"
    android:orientation="vertical"/>
<Button
    android:text="Button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonEnd"
    app:layout_constraintRight_toLeftOf="@+id/guidelineEnd"
    android:layout_marginTop="48dp"
    app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Guideline
    android:id="@+id/guidelinePercent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.8" />
<Button
    android:text="Button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonPercent"
    app:layout_constraintLeft_toLeftOf="@+id/guidelinePercent"
    android:layout_marginTop="96dp"
    app:layout_constraintTop_toTopOf="parent" />

效果:


當(dāng)你要用一個(gè)控件占屏幕寬度的一半的時(shí)候它改,可以用layout_constraintGuide_percent,如下面代碼:

<android.support.constraint.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/guidelineBegin"
    app:layout_constraintGuide_percent="0.5"
    app:layout_constraintStart_toStartOf="@id/button"
    android:orientation="vertical"/>
<Button
    android:text="Button"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/button"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/guidelineBegin"
    android:layout_marginTop="16dp"
    app:layout_constraintTop_toTopOf="parent" />

效果:


6.Barrier

Barrier 是用多個(gè) View 作為限制源來(lái)決定自身位置的一種輔助線.
Barrier同Guideline一樣商乎,不會(huì)被顯示央拖。Barrier的使用效果:


Barrier效果

可以看到,中間的線就是我們的Barrier,會(huì)隨著左側(cè)控件組的最長(zhǎng)側(cè)變化而改變Barrier的位置鲜戒,從而改變右側(cè)控件的位置专控。

 <android.support.v7.widget.AppCompatTextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:text="warehouse"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="wrap_content"/>

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:text="hospitalhospitalhospital"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv1"
        android:layout_height="wrap_content"/>

    <!-- constraint_referenced_ids包含我們需要包含的組件,以這些組件的某一側(cè)為基準(zhǔn) -->
    <!-- barrierDirection面向包含的組件 -->
    <android.support.constraint.Barrier
        android:id="@+id/barrier"
        app:barrierDirection="right"
        app:constraint_referenced_ids="tv1,tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/tv3"
        android:layout_width="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:text="lorem_ipsumlorem_ipsumlorem_ilorem_ipsumlorem_ipsumlorem_ipsumlorem_ipsumpsumlorem_ipsumlorem_ipsumlorem_ipsumwww"
        app:layout_constraintStart_toEndOf="@+id/barrier"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="wrap_content"/>

其中 constraint_referenced_ids 指定限定源id,多個(gè)id用逗號(hào)隔開(kāi)
app:barrierDirection 指定限制的方向 , 有 left, right, top, bottom, start, end, 6種遏餐。

上面代表的是 barrier 以 tv2 和 tv1 兩者最右側(cè)為基準(zhǔn)線來(lái)作為自己的定位

7.Circular positioning

Circular positioning 稱之為圓形定位伦腐,就是以目標(biāo)控件為圓心,通過(guò)設(shè)置角度和半徑確定我們當(dāng)前控件的位置失都,
可以設(shè)置的屬性有:

  • layout_constraintCircle:引用另一個(gè)控件的 id柏蘑。
  • layout_constraintCircleRadius:到另一個(gè)控件中心的距離。
  • layout_constraintCircleAngle:控件的角度(順時(shí)針粹庞,0 - 360 度)咳焚。

如官方圖:


Circular positioning

示例:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_menu"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="16dp"
        android:src="@android:drawable/ic_dialog_email"
        android:tint="#fff"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab1"
        android:layout_width="50dp"
        android:src="@android:drawable/ic_dialog_info"
        android:tint="#fff"
        app:elevation="@null"
        app:layout_constraintCircle="@+id/fab_menu"
        app:layout_constraintCircleAngle="0"
        app:layout_constraintCircleRadius="100dp"
        android:layout_height="50dp"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@android:drawable/ic_dialog_info"
        android:tint="#fff"
        app:elevation="@null"
        app:layout_constraintCircle="@+id/fab_menu"
        app:layout_constraintCircleAngle="315"
        app:layout_constraintCircleRadius="100dp" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab3"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@android:drawable/ic_dialog_info"
        android:tint="#fff"
        app:elevation="@null"
        app:layout_constraintCircle="@+id/fab_menu"
        app:layout_constraintCircleAngle="270"
        app:layout_constraintCircleRadius="100dp" />

效果:


8.Group

Group通過(guò)app:constraint_referenced_ids添加對(duì)子View的引用,然后統(tǒng)一的顯示或者隱藏控件庞溜。

<android.support.constraint.Group
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone"
    app:constraint_referenced_ids="btn1,btn2"/>

<Button
    android:id="@+id/btn1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="按鈕1"/>

<Button
    android:id="@+id/btn2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="按鈕2"
    app:layout_constraintTop_toBottomOf="@id/btn1"/>

別將view放Group包起來(lái).這樣會(huì)報(bào)錯(cuò),因?yàn)镚roup只是一個(gè)不執(zhí)行onDraw()的View.

使用多個(gè) Group 時(shí)革半,盡量不要將某個(gè)View重復(fù)的放在 多個(gè) Group 中,實(shí)測(cè)可能會(huì)導(dǎo)致隱藏失效.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末流码,一起剝皮案震驚了整個(gè)濱河市又官,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漫试,老刑警劉巖六敬,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異驾荣,居然都是意外死亡觉阅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)秘车,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人劫哼,你說(shuō)我怎么就攤上這事叮趴。” “怎么了权烧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵眯亦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我般码,道長(zhǎng)妻率,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任板祝,我火速辦了婚禮宫静,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己孤里,他們只是感情好伏伯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著捌袜,像睡著了一般说搅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虏等,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天弄唧,我揣著相機(jī)與錄音,去河邊找鬼霍衫。 笑死候引,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慕淡。 我是一名探鬼主播背伴,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼峰髓!你這毒婦竟也來(lái)了傻寂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤携兵,失蹤者是張志新(化名)和其女友劉穎疾掰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體徐紧,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡静檬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了并级。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拂檩。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嘲碧,靈堂內(nèi)的尸體忽然破棺而出稻励,到底是詐尸還是另有隱情,我是刑警寧澤愈涩,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布望抽,位于F島的核電站,受9級(jí)特大地震影響履婉,放射性物質(zhì)發(fā)生泄漏煤篙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一毁腿、第九天 我趴在偏房一處隱蔽的房頂上張望辑奈。 院中可真熱鬧苛茂,春花似錦、人聲如沸身害。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)塌鸯。三九已至侍瑟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丙猬,已是汗流浹背涨颜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茧球,地道東北人庭瑰。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抢埋,于是被迫代替她去往敵國(guó)和親弹灭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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