Android 滑動懸浮置頂指南

  1. Android 滑動懸浮置頂效果的新實現(xiàn) (有完整的xml代碼)

  2. Material Design之CoordinatorLayout+AppBarLayout實現(xiàn)上滑隱藏ToolBar (有比較詳細(xì)的說明xml的屬性的意思尽狠,同時介紹了TabLayout)

  3. android CoordinatorLayout使用 (詳細(xì)的說明了CoordinatorLayout使用的例子)

  4. Android CoordinatorLayout + AppBarLayout(向上滾動隱藏指定的View) (就是看它終于明白了粘舟,如果想實現(xiàn)滑動懸浮置頂甜癞,必須要有CoordinatorLayout + AppBarLayout)

  5. android 控件 NestedScrollView (解釋了為什么一定要用NestedScrollView)

我自己的xml代碼夯到,加上一些理解后的注釋

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:fitsSystemWindows="true">

    <!-- 第一部分:CoordinatorLayout -->
    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff">

        <!-- 第二部分:縮放控件-->
        <android.support.design.widget.AppBarLayout
            android:id="@+id/appBarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <RelativeLayout
                android:id="@+id/collapsing_tool_bar_test_ctl"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_scrollFlags="scroll">
                <!-- layout_scrollFlags="scroll"  所有想滾動出屏幕的view都需要設(shè)置這個flag瘦棋, 沒有設(shè)置這個flag的view將被固定在屏幕頂部杭攻。-->
                
                <RelativeLayout
                    android:id="@+id/userScroreRe"
                    android:layout_width="match_parent"
                    android:layout_height="240dp"
                    android:background="#f00">

                </RelativeLayout>
            </RelativeLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <!-- 沒有設(shè)置的則會停留在頂部 -->

                <RadioGroup
                    android:id="@+id/radioGroup"
                    android:layout_width="fill_parent"
                    android:layout_height="50dip"
                    android:gravity="center"
                    android:orientation="horizontal" />
            </LinearLayout>
        </android.support.design.widget.AppBarLayout>

        <!-- 第三部分:Your Scroll View-->
        <!-- 一開始不明白為什么一定要使用NestedScrollView為什么不用你管ScrollView -->
        <!-- 簡單的說肮柜,它是專門用于和CoordinatorLayout搭配的達(dá)成滑動 -->
        <android.support.v4.widget.NestedScrollView
            android:id="@+id/myMainScrollView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:overScrollMode="always"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">
            <!-- app:layout_behavior="@string/appbar_scrolling_view_behavior"這一句擦俐,這句話跟CollapsingToolbarLayout中app:layout_scrollFlags="scroll|exitUntilCollapsed"對應(yīng)檬嘀,系統(tǒng)一旦發(fā)現(xiàn)NestedScrollView中有那句話槽驶,就會檢查其他控件,然后如果有上面這句對應(yīng)的話鸳兽,那么滑動效果就是可以實現(xiàn)的掂铐。-->

            <LinearLayout
                android:id="@+id/mainLinearLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="50dp"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:text="測試gem測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測測試測試測試測試測試測試測試測試測試測試測試測試"
                    />

                <!--<FrameLayout-->
                <!--android:id="@+id/myFrameContainer"-->
                <!--android:layout_width="match_parent"-->
                <!--android:layout_height="fill_parent"></FrameLayout>-->

            </LinearLayout>

        </android.support.v4.widget.NestedScrollView>

    </android.support.design.widget.CoordinatorLayout>
</LinearLayout>

需要注意的有幾點(diǎn):
1.CollapsingToolbarLayout必須設(shè)置app:layout_scrollFlags=”scroll”,他才可以滑動。
2.NestedScrollView必須設(shè)置app:layout_behavior這個屬性全陨,他們才會聯(lián)動爆班。
3.NestedScrollView里面如果嵌套listview等可滑動的布局時要重寫listview的onmeasures方法(網(wǎng)上一大堆)。


新項目中仿支付寶的浮動效果
計算距離添加淡入淡出效果
滑動卡頓就當(dāng)recyclerView滑動到第一個的時候打開appBarLayout

fragment_fish.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="@color/white">

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/abl_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.CollapsingToolbarLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/top_layout_height"
                    android:background="@color/blue"
                    android:layout_marginTop="@dimen/tool_bar_height"
                    app:layout_collapseMode="parallax"
                    app:layout_collapseParallaxMultiplier="0.7">

                    <LinearLayout
                        android:id="@+id/rl_no_special"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/top_layout_height"
                        android:orientation="horizontal">

                        <RelativeLayout
                            android:id="@+id/rl_top_fish_info"
                            android:layout_width="0dp"
                            android:layout_weight="1"
                            android:layout_height="match_parent">

                            <LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:orientation="vertical"
                                android:layout_centerInParent="true">


                                <ImageView
                                    android:id="@+id/iv_top_fish_info"
                                    android:layout_width="@dimen/top_layout_icon_width"
                                    android:layout_height="@dimen/top_layout_icon_width"
                                    android:background="@drawable/top_icon_big_fish"
                                    android:layout_gravity="center_horizontal"
                                    android:clickable="true" />

                                <TextView
                                    android:id="@+id/tv_top_fish_info"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:text="魚塘信息"
                                    android:textColor="@color/white"
                                    android:textSize="@dimen/text_size_middle"
                                    android:layout_gravity="center_horizontal"
                                    android:layout_marginTop="8dp"/>


                            </LinearLayout>

                        </RelativeLayout>

                        <RelativeLayout
                            android:id="@+id/rl_top_device_info"
                            android:layout_width="0dp"
                            android:layout_weight="1"
                            android:layout_height="match_parent">

                            <LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:orientation="vertical"
                                android:layout_centerInParent="true">


                                <ImageView
                                    android:id="@+id/iv_top_device_info"
                                    android:layout_width="@dimen/top_layout_icon_width"
                                    android:layout_height="@dimen/top_layout_icon_width"
                                    android:background="@drawable/top_icon_device"
                                    android:layout_gravity="center_horizontal"
                                    android:clickable="true"/>

                                <TextView
                                    android:id="@+id/tv_top_device_info"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:text="設(shè)備信息"
                                    android:textColor="@color/white"
                                    android:textSize="@dimen/text_size_middle"
                                    android:layout_gravity="center_horizontal"
                                    android:layout_marginTop="8dp"/>

                            </LinearLayout>

                        </RelativeLayout>

                        <RelativeLayout
                            android:id="@+id/rl_top_data_list"
                            android:layout_width="0dp"
                            android:layout_weight="1"
                            android:layout_height="match_parent">

                            <LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:orientation="vertical"
                                android:layout_centerInParent="true">


                                <ImageView
                                    android:id="@+id/iv_top_data_info"
                                    android:layout_width="@dimen/top_layout_icon_width"
                                    android:layout_height="@dimen/top_layout_icon_width"
                                    android:background="@drawable/top_icon_data"
                                    android:layout_gravity="center_horizontal"
                                    android:clickable="true"/>

                                <TextView
                                    android:id="@+id/tv_top_data_info"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:text="數(shù)據(jù)列表"
                                    android:textColor="@color/white"
                                    android:textSize="@dimen/text_size_middle"
                                    android:layout_gravity="center_horizontal"
                                    android:layout_marginTop="8dp"/>


                            </LinearLayout>

                        </RelativeLayout>

                    </LinearLayout>

                    <View
                        android:id="@+id/v_pay_mask"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/top_layout_height"
                        android:background="@color/transparent" />


                </RelativeLayout>



                <android.support.v7.widget.Toolbar
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/tool_bar_height"
                    app:layout_collapseMode="pin"
                    app:contentInsetLeft="0dp"
                    app:contentInsetStart="0dp">

                    <include
                        android:id="@+id/tl_expand"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        layout="@layout/ele_title_bar"/>

                    <include
                        android:id="@+id/tl_collapse"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        layout="@layout/ele_title_bar_collapse"
                        android:visibility="gone"/>


                </android.support.v7.widget.Toolbar>



            </android.support.design.widget.CollapsingToolbarLayout>


        </android.support.design.widget.AppBarLayout>



        <com.github.jdsjlzx.recyclerview.LRecyclerView
            android:id="@+id/lv_fish_pond_info"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:overScrollMode="never"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">


        </com.github.jdsjlzx.recyclerview.LRecyclerView>

    </android.support.design.widget.CoordinatorLayout>



</RelativeLayout>
ele_title_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="@dimen/tool_bar_height"
    android:background="@color/blue">

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/tool_bar_title_margin_left"
        android:layout_centerVertical="true"
        android:text="標(biāo)題"
        android:textColor="@color/white"
        android:textSize="@dimen/text_size_big"/>

    <View
        android:id="@+id/v_expand_mask"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/transparent"/>

</RelativeLayout>
ele_title_bar_collapse.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/tool_bar_height"
    android:background="@color/blue">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/iv_top_bar_fish"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@drawable/top_icon_big_fish"
            android:layout_marginLeft="@dimen/tool_bar_title_margin_left"
            android:layout_gravity="center_vertical" />

        <ImageView
            android:id="@+id/iv_top_bar_device"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@drawable/top_icon_device"
            android:layout_marginLeft="@dimen/tool_bar_title_margin_left"
            android:layout_gravity="center_vertical" />

        <ImageView
            android:id="@+id/iv_top_bar_data"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@drawable/top_icon_data"
            android:layout_marginLeft="@dimen/tool_bar_title_margin_left"
            android:layout_gravity="center_vertical" />


    </LinearLayout>

    <View
        android:id="@+id/v_collapse_mask"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/transparent"/>



</RelativeLayout>
FishFragment.kt
package com.example.administrator.tempdemo.fragment

import android.app.Activity
import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.support.design.widget.AppBarLayout
import android.support.v4.content.ContextCompat
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import com.example.administrator.tempdemo.BaseFragment
import com.example.administrator.tempdemo.R
import com.example.administrator.tempdemo.adapter.FishPondInfoAdapter
import com.example.administrator.tempdemo.model.FishPondInfo
import com.example.administrator.tempdemo.presenter.FishPresenter
import com.example.administrator.tempdemo.view.FishView
import com.github.jdsjlzx.ItemDecoration.DividerDecoration
import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter
import com.github.jdsjlzx.recyclerview.ProgressStyle
import kotlinx.android.synthetic.main.ele_title_bar.*
import kotlinx.android.synthetic.main.ele_title_bar_collapse.*
import kotlinx.android.synthetic.main.fragment_fish.*
import org.jetbrains.anko.onClick
import org.jetbrains.anko.onTouch
import org.jetbrains.anko.support.v4.find
import org.jetbrains.anko.support.v4.toast

/**
 * Created by Administrator on 2017/6/28.
 */
class FishFragment: BaseFragment(), FishView, AppBarLayout.OnOffsetChangedListener {


    lateinit var fishPresenter: FishPresenter
    lateinit var fishListener: FishListener
    lateinit var fishPondInfoList: MutableList<FishPondInfo>

    lateinit var mFishPondInfoAdapter: FishPondInfoAdapter
    lateinit var mLRecyclerViewAdapter: LRecyclerViewAdapter
    lateinit var layoutManager: LinearLayoutManager

    var mMaskColor: Int = 0

    interface FishListener{

    }

    companion object{
        fun newInstance(): FishFragment{
            return FishFragment()
        }
    }

    override fun onAttach(activity: Activity?) {
        super.onAttach(activity)
        if(activity is FishListener){
            fishListener = activity
        }
    }

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        var view = inflater!!.inflate(R.layout.fragment_fish, null)
        fishPresenter = FishPresenter(this)
        return view
    }

    override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        initView()
        initListener()
        if(savedInstanceState == null){
            this.fishPresenter.loadDataList()
        }
    }

    override fun renderFishPondInfoList(fishPondInfoList: MutableList<FishPondInfo>) {
        if(fishPondInfoList != null){
            mFishPondInfoAdapter.fishPondInfoList = fishPondInfoList
            mLRecyclerViewAdapter.notifyDataSetChanged()
            lv_fish_pond_info.refreshComplete(fishPondInfoList.size)
        }
    }

    fun initView(){
        mFishPondInfoAdapter = FishPondInfoAdapter(context)
        mLRecyclerViewAdapter = LRecyclerViewAdapter(mFishPondInfoAdapter)
        tv_title.text = getString(R.string.main_fish)
        lv_fish_pond_info.adapter = mLRecyclerViewAdapter
        var divider = DividerDecoration.Builder(context)
                .setHeight(R.dimen.fish_pond_info_divider)
                .setColorResource(R.color.white)
                .build()
        lv_fish_pond_info.addItemDecoration(divider)
        layoutManager = LinearLayoutManager(context)
        lv_fish_pond_info.layoutManager = layoutManager
        //RecyclerView添加Header
        var header = LayoutInflater.from(context).inflate(R.layout.item_fish_now_text_view, activity.findViewById(android.R.id.content) as ViewGroup, false)
        mLRecyclerViewAdapter.addHeaderView(header)
        //下拉刷新樣式
        lv_fish_pond_info.setRefreshProgressStyle(ProgressStyle.LineSpinFadeLoader);
        lv_fish_pond_info.setArrowImageView(R.drawable.ic_pulltorefresh_arrow);
        //禁止上拉加載
        lv_fish_pond_info.setLoadMoreEnabled(false)

        mMaskColor = ContextCompat.getColor(context, R.color.blue)
        abl_bar.addOnOffsetChangedListener(this)
    }

    fun initListener(){
        rl_top_fish_info.onTouch { _, event ->
            when(event!!.action){
                MotionEvent.ACTION_DOWN -> {
                    iv_top_fish_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_big_fish_pressed)
                    tv_top_fish_info.setTextColor(ContextCompat.getColor(activity, R.color.blue_pressed))
                }
                MotionEvent.ACTION_UP -> {
                    iv_top_fish_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_big_fish)
                    tv_top_fish_info.setTextColor(ContextCompat.getColor(activity, R.color.white))
                }
                MotionEvent.ACTION_CANCEL -> {
                    iv_top_fish_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_big_fish)
                    tv_top_fish_info.setTextColor(ContextCompat.getColor(activity, R.color.white))
                }
            }
            false
        }
        rl_top_device_info.onTouch { _, event ->
            when(event!!.action){
                MotionEvent.ACTION_DOWN -> {
                    iv_top_device_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_device_pressed)
                    tv_top_device_info.setTextColor(ContextCompat.getColor(activity, R.color.blue_pressed))
                }
                MotionEvent.ACTION_UP -> {
                    iv_top_device_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_device)
                    tv_top_device_info.setTextColor(ContextCompat.getColor(activity, R.color.white))
                }
                MotionEvent.ACTION_CANCEL -> {
                    iv_top_device_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_device)
                    tv_top_device_info.setTextColor(ContextCompat.getColor(activity, R.color.white))
                }
            }
            false
        }
        rl_top_data_list.onTouch { _, event ->
            when(event!!.action){
                MotionEvent.ACTION_DOWN -> {
                    iv_top_data_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_data_pressed)
                    tv_top_data_info.setTextColor(ContextCompat.getColor(activity, R.color.blue_pressed))
                }
                MotionEvent.ACTION_UP -> {
                    iv_top_data_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_data)
                    tv_top_data_info.setTextColor(ContextCompat.getColor(activity, R.color.white))
                }
                MotionEvent.ACTION_CANCEL -> {
                    iv_top_data_info.background = ContextCompat.getDrawable(activity, R.drawable.top_icon_data)
                    tv_top_data_info.setTextColor(ContextCompat.getColor(activity, R.color.white))
                }
            }
            false
        }
        rl_top_fish_info.onClick {
            toast("fish")
        }
        rl_top_device_info.onClick {
            toast("device")
        }
        rl_top_data_list.onClick {
            toast("data")
        }
        //下拉刷新監(jiān)聽
        lv_fish_pond_info.setOnRefreshListener {
            loadDataList()
        }
        //RecyclerView滑動監(jiān)聽
        lv_fish_pond_info.addOnScrollListener(object: RecyclerView.OnScrollListener(){
            override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
                super.onScrollStateChanged(recyclerView, newState)
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    var firstVisiblePosition = layoutManager.findFirstCompletelyVisibleItemPosition();
                    if (firstVisiblePosition == 0) {
                        abl_bar.setExpanded(true, true);
                    }
                }
            }
        })
    }

    fun loadDataList(){
        this.fishPresenter.loadDataList()
    }

    override fun showLoading() {
    }

    override fun hideLoading() {
    }

    override fun context(): Context {
        return context.applicationContext
    }

    override fun onOffsetChanged(appBarLayout: AppBarLayout?, verticalOffset: Int) {
        var offset = Math.abs(verticalOffset)
        var total = appBarLayout!!.totalScrollRange
        var alphaIn = offset
        var alphaOut = 0
        if((200 - offset) > 0){
            alphaOut = 200 - offset
        }
        var maskColorIn = Color.argb(alphaIn, Color.red(mMaskColor), Color.green(mMaskColor), Color.blue(mMaskColor))
        var maskColorInDouble = Color.argb(alphaIn*2, Color.red(mMaskColor), Color.green(mMaskColor), Color.blue(mMaskColor))
        var maskColorOut = Color.argb(alphaOut*2, Color.red(mMaskColor), Color.green(mMaskColor), Color.blue(mMaskColor))
        if(offset <= total/2){
            tl_expand.visibility = View.VISIBLE
            tl_collapse.visibility = View.GONE
            v_expand_mask.setBackgroundColor(maskColorInDouble)
        }else{
            tl_expand.visibility = View.GONE
            tl_collapse.visibility = View.VISIBLE
            v_collapse_mask.setBackgroundColor(maskColorOut)
        }
        v_pay_mask.setBackgroundColor(maskColorIn)
    }
}
完美

好好學(xué)習(xí)辱姨,天天向上柿菩。<( ̄oo, ̄)/


Potato_zero.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雨涛,隨后出現(xiàn)的幾起案子枢舶,更是在濱河造成了極大的恐慌,老刑警劉巖替久,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凉泄,死亡現(xiàn)場離奇詭異,居然都是意外死亡蚯根,警方通過查閱死者的電腦和手機(jī)后众,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稼锅,“玉大人吼具,你說我怎么就攤上這事【鼐啵” “怎么了拗盒?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锥债。 經(jīng)常有香客問我陡蝇,道長,這世上最難降的妖魔是什么哮肚? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任登夫,我火速辦了婚禮,結(jié)果婚禮上允趟,老公的妹妹穿的比我還像新娘恼策。我一直安慰自己,他們只是感情好潮剪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布涣楷。 她就那樣靜靜地躺著,像睡著了一般抗碰。 火紅的嫁衣襯著肌膚如雪狮斗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天弧蝇,我揣著相機(jī)與錄音碳褒,去河邊找鬼折砸。 笑死,一個胖子當(dāng)著我的面吹牛沙峻,可吹牛的內(nèi)容都是我干的睦授。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼专酗,長吁一口氣:“原來是場噩夢啊……” “哼睹逃!你這毒婦竟也來了盗扇?” 一聲冷哼從身側(cè)響起祷肯,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疗隶,沒想到半個月后佑笋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斑鼻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年蒋纬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坚弱。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜀备,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荒叶,到底是詐尸還是另有隱情碾阁,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布些楣,位于F島的核電站脂凶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏愁茁。R本人自食惡果不足惜蚕钦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹅很。 院中可真熱鬧嘶居,春花似錦、人聲如沸促煮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽污茵。三九已至樱报,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泞当,已是汗流浹背迹蛤。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盗飒。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓嚷量,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逆趣。 傳聞我的和親對象是個殘疾皇子蝶溶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

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