AlertDialog样式研究

默认样式

<style name="AlertDialog.Material" parent="AlertDialog">
    <item name="fullDark">@empty</item>
    <item name="topDark">@empty</item>
    <item name="centerDark">@empty</item>
    <item name="bottomDark">@empty</item>
    <item name="fullBright">@empty</item>
    <item name="topBright">@empty</item>
    <item name="centerBright">@empty</item>
    <item name="bottomBright">@empty</item>
    <item name="bottomMedium">@empty</item>
    <item name="centerMedium">@empty</item>
    <item name="layout">@layout/alert_dialog_material</item>
    <item name="listLayout">@layout/select_dialog_material</item>
    <item name="progressLayout">@layout/progress_dialog_material</item>
    <item name="horizontalProgressLayout">@layout/alert_dialog_progress_material</item>
    <item name="listItemLayout">@layout/select_dialog_item_material</item>
    <item name="multiChoiceItemLayout">@layout/select_dialog_multichoice_material</item>
    <item name="singleChoiceItemLayout">@layout/select_dialog_singlechoice_material</item>
    <item name="controllerType">@integer/config_alertDialogController</item>
    <item name="selectionScrollOffset">@dimen/config_alertDialogSelectionScrollOffset</item>
</style>
名称 说明
fullDark
topDark
centerDark
bottomDark
fullBright
topBright
centerBright
bottomBright
bottomMedium
centerMedium
layout 标准布局
listLayout 列表布局
progressLayout 圆形进度条布局
horizontalProgressLayout 横方向进度条布局
listItemLayout 列表项目布局
multiChoiceItemLayout 多选列表项目布局
singleChoiceItemLayout 单选列表项目布局
controllerType Controller类型设置: 0 正常, 1 Micro
selectionScrollOffset 设置滚动条位置

标准布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<com.android.internal.widget.AlertDialogLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/parentPanel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="start|top"
    android:orientation="vertical">

    <include layout="@layout/alert_dialog_title_material" />

    <FrameLayout
        android:id="@+id/contentPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="48dp">

        <ScrollView
            android:id="@+id/scrollView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipToPadding="false">

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

                <Space
                    android:id="@+id/textSpacerNoTitle"
                    android:visibility="gone"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dialog_padding_top_material" />

                <TextView
                    android:id="@+id/message"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingEnd="?attr/dialogPreferredPadding"
                    android:paddingStart="?attr/dialogPreferredPadding"
                    style="@style/TextAppearance.Material.Subhead" />

                <Space
                    android:id="@+id/textSpacerNoButtons"
                    android:visibility="gone"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dialog_padding_top_material" />
            </LinearLayout>
        </ScrollView>
    </FrameLayout>

    <FrameLayout
        android:id="@+id/customPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="48dp">

        <FrameLayout
            android:id="@+id/custom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </FrameLayout>

    <include
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/alert_dialog_button_bar_material" />
</com.android.internal.widget.AlertDialogLayout>
名称 说明
@layout/alert_dialog_title_material 标题布局
dialogPreferredPadding 信息左右Padding
@layout/alert_dialog_button_bar_material 按钮布局

没有什么可以调整的,但凡有个图片啥的就使用setView()吧

dialogPreferredPadding

示例

<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:dialogPreferredPadding">@dimen/dialog_padding_0</item>
</style>

这个属性很多地方使用,慎改

标题布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2015 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/topPanel"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical">

    <!-- If the client uses a customTitle, it will be added here. -->

    <LinearLayout
        android:id="@+id/title_template"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_vertical|start"
        android:paddingStart="?attr/dialogPreferredPadding"
        android:paddingEnd="?attr/dialogPreferredPadding"
        android:paddingTop="@dimen/dialog_padding_top_material">

        <ImageView
            android:id="@+id/icon"
            android:layout_width="32dip"
            android:layout_height="32dip"
            android:layout_marginEnd="8dip"
            android:scaleType="fitCenter"
            android:src="@null" />

        <com.android.internal.widget.DialogTitle
            android:id="@+id/alertTitle"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAlignment="viewStart"
            style="?attr/windowTitleStyle" />
    </LinearLayout>

    <Space
        android:id="@+id/titleDividerNoCustom"
        android:visibility="gone"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dialog_title_divider_material" />
</LinearLayout>
名称 说明
dialogPreferredPadding 左右空白宽度
windowTitleStyle 标题样式

windowTitleStyle

示例

<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:windowTitleStyle">@style/DialogTitleStyle</item>
</style>

<style name="DialogTitleStyle" parent="RtlOverlay.DialogWindowTitle.AppCompat">
    <item name="android:textAppearance">@style/DialogTitleStyle.Title</item>
</style>

<style name="DialogTitleStyle.Title" parent="TextAppearance.AppCompat.Title">
    <item name="android:textSize">26sp</item>
    <item name="android:textColor">#FF0000</item>
</style>

只能调整文字大小和颜色,如果居中啥的,还是使用setCustomTitle()吧

按钮布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/buttonPanel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:scrollIndicators="top|bottom"
            android:fillViewport="true"
            style="?attr/buttonBarStyle">
    <com.android.internal.widget.ButtonBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layoutDirection="locale"
        android:orientation="horizontal"
        android:paddingStart="12dp"
        android:paddingEnd="12dp"
        android:paddingTop="4dp"
        android:paddingBottom="4dp"
        android:gravity="bottom">

        <Button
            android:id="@+id/button3"
            style="?attr/buttonBarNeutralButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Space
            android:id="@+id/spacer"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:visibility="invisible" />

        <Button
            android:id="@+id/button2"
            style="?attr/buttonBarNegativeButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/button1"
            style="?attr/buttonBarPositiveButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </com.android.internal.widget.ButtonBarLayout>
</ScrollView>
名称 说明
buttonBarStyle 按钮容器样式
buttonBarNeutralButtonStyle Neutral按钮样式
buttonBarNegativeButtonStyle Negative按钮样式
buttonBarPositiveButtonStyle Positive按钮样式

按钮容器样式

本身是一个ScrollView控件,按照ScrollView样式设置即可,其实也就是设置个空白啥的

Positive按钮样式

示例

<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:buttonBarPositiveButtonStyle">@style/DialogButtonStyle.Button.Positive</item>
</style>

<style name="DialogButtonStyle.Button.Positive">
    <item name="android:textColor">#000000</item>
    <item name="android:background">#00FF00</item>
    <item name="android:layout_weight">1</item>
</style>

按钮样式除了宽高和位置,其他都按照Button样式设置即可

Negative按钮样式

<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:buttonBarNegativeButtonStyle">@style/DialogButtonStyle.Button.Negative</item>
</style>

<style name="DialogButtonStyle.Button.Negative">
    <item name="android:textColor">#000000</item>
    <item name="android:background">#00FFFF</item>
    <item name="android:layout_weight">1</item>
</style>

按钮样式除了宽高和位置,其他都按照Button样式设置即可

Neutral按钮样式

示例

<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:buttonBarNeutralButtonStyle">@style/DialogButtonStyle.Button.Neutral</item>
</style>

<style name="DialogButtonStyle.Button.Neutral">
    <item name="android:textColor">#000000</item>
    <item name="android:background">#FF00FF</item>
    <item name="android:textSize">24sp</item>
    <item name="android:layout_weight">1</item>
</style>

按钮样式除了宽高和位置,其他都按照Button样式设置即可

列表布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!--
    This layout file is used by the AlertDialog when displaying a list of items.
    This layout file is inflated and used as the ListView to display the items.
    Assign an ID so its state will be saved/restored.
-->
<view class="com.android.internal.app.AlertController$RecycleListView"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/select_dialog_listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:cacheColorHint="@null"
    android:divider="?attr/listDividerAlertDialog"
    android:scrollbars="vertical"
    android:overScrollMode="ifContentScrolls"
    android:textAlignment="viewStart"
    android:clipToPadding="false"
    android:paddingBottomNoButtons="@dimen/dialog_list_padding_bottom_no_buttons"
    android:paddingTopNoTitle="@dimen/dialog_list_padding_top_no_title" />
名称 说明
listDividerAlertDialog 分割符

分割符

示例

<style name="AppTheme.Dialog.List" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:listDividerAlertDialog">@drawable/dialog_list_divider</item>
</style>

分割符只识别drawable

圆形进度条布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/body"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:baselineAligned="false"
        android:paddingStart="?attr/dialogPreferredPadding"
        android:paddingTop="@dimen/dialog_padding_top_material"
        android:paddingEnd="?attr/dialogPreferredPadding"
        android:paddingBottom="@dimen/dialog_padding_top_material">

        <ProgressBar
            android:id="@id/progress"
            style="?android:attr/progressBarStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:max="10000"
            android:layout_marginEnd="?attr/dialogPreferredPadding" />

        <TextView
            android:id="@+id/message"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />
    </LinearLayout>
</FrameLayout>
名称 说明
dialogPreferredPadding 左右空白宽度
progressBarStyle 进度条样式

ProgressDialog已作废,这个好像没啥用了

横方向进度条布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:paddingStart="?attr/dialogPreferredPadding"
    android:paddingTop="@dimen/dialog_padding_top_material"
    android:paddingEnd="?attr/dialogPreferredPadding"
    android:paddingBottom="@dimen/dialog_padding_top_material">
    <ProgressBar
        android:id="@+id/progress"
        style="?attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" />
    <TextView
        android:id="@+id/progress_percent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@id/progress" />
    <TextView
        android:id="@+id/progress_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_below="@id/progress" />
</RelativeLayout>
名称 说明
dialogPreferredPadding 左右空白宽度
progressBarStyleHorizontal 进度条样式

ProgressDialog已作废,这个好像没啥用了

列表项目布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!--
    This layout file is used by the AlertDialog when displaying a list of items.
    This layout file is inflated and used as the TextView to display individual
    items.
-->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:textColor="?android:attr/textColorAlertDialogListItem"
    android:gravity="center_vertical"
    android:paddingStart="?attr/listPreferredItemPaddingStart"
    android:paddingEnd="?attr/listPreferredItemPaddingEnd"
    android:ellipsize="marquee" />
名称 说明
listPreferredItemHeightSmall 最小高度
textAppearanceListItemSmall 文字外观
textColorAlertDialogListItem 文字颜色
listPreferredItemPaddingStart 左空白宽度
listPreferredItemPaddingEnd 右空白宽度

示例

<style name="AppTheme.Dialog.List" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:listPreferredItemHeightSmall">72dp</item>
    <item name="android:textColorAlertDialogListItem">#666666</item>
    <item name="android:listPreferredItemPaddingStart">64dp</item>
    <item name="android:listPreferredItemPaddingEnd">32dp</item>
    <item name="android:textAppearanceListItemSmall">@style/TextAppearance.AppCompat.Small</item>
</style>

想要项目居中显示的话,还是使用setView()吧

多选列表项目布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/listPreferredItemHeightSmall"
    android:textAppearance="?attr/textAppearanceMedium"
    android:textColor="?attr/textColorAlertDialogListItem"
    android:gravity="center_vertical"
    android:paddingStart="@dimen/select_dialog_padding_start_material"
    android:paddingEnd="?attr/dialogPreferredPadding"
    android:drawableStart="?attr/listChoiceIndicatorMultiple"
    android:drawablePadding="@dimen/select_dialog_drawable_padding_start_material"
    android:ellipsize="marquee" />
名称 说明
listPreferredItemHeightSmall 最小高度
textAppearanceMedium 文字外观
textColorAlertDialogListItem 文字颜色
dialogPreferredPadding 右空白宽度
listChoiceIndicatorMultiple 选择框样式

示例

<style name="AppTheme.Dialog.List" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:listPreferredItemHeightSmall">72dp</item>
    <item name="android:textColorAlertDialogListItem">#666666</item>
    <item name="android:dialogPreferredPadding">32dp</item>
    <item name="android:textAppearanceMedium">@style/TextAppearance.AppCompat.Medium</item>
    <item name="android:listChoiceIndicatorMultiple">@drawable/imagegrid_delete_image</item>
</style>

listChoiceIndicatorMultiple

可以是图片

单选列表项目布局

<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/listPreferredItemHeightSmall"
    android:textAppearance="?attr/textAppearanceMedium"
    android:textColor="?attr/textColorAlertDialogListItem"
    android:gravity="center_vertical"
    android:paddingStart="@dimen/select_dialog_padding_start_material"
    android:paddingEnd="?attr/dialogPreferredPadding"
    android:drawableStart="?attr/listChoiceIndicatorSingle"
    android:drawablePadding="@dimen/select_dialog_drawable_padding_start_material"
    android:ellipsize="marquee" />
名称 说明
listPreferredItemHeightSmall 最小高度
textAppearanceMedium 文字外观
textColorAlertDialogListItem 文字颜色
dialogPreferredPadding 右空白宽度
listChoiceIndicatorSingle 选择框样式

示例

<style name="AppTheme.Dialog.List" parent="Theme.AppCompat.DayNight.Dialog.Alert">
    <item name="android:listPreferredItemHeightSmall">72dp</item>
    <item name="android:textColorAlertDialogListItem">#666666</item>
    <item name="android:dialogPreferredPadding">32dp</item>
    <item name="android:textAppearanceMedium">@style/TextAppearance.AppCompat.Medium</item>
    <item name="android:listChoiceIndicatorSingle">@drawable/imagegrid_delete_image</item>
</style>

listChoiceIndicatorSingle

可以是图片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,827评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,345评论 0 17
  • W3C https://zh.wikipedia.org/zh-hant/%E4%B8%87%E7%BB%B4%E...
    金冥灭阅读 336评论 0 0
  • 第一章 1、使用浏览器去访问的程序,叫网页 2、web代码存放在服务器 代码分为两种:① 运行在浏览器端:前端代...
    fastwe阅读 3,392评论 0 2
  • * 按钮 复选框、折叠控件、渐变按钮、帮助按钮、图像按钮、弹出按钮、下拉按钮、操作按钮、单选按钮、范围按钮、切换按...
    王滋溜阅读 630评论 0 1