一、效果图

title_dialog.png

二、思路

首先它是一个弹框,只是弹框的布局做些处理,布局占满屏幕,只有需要白色的布局的背景设为白色。其他没设置背景颜色,自然用dialog的style的windowBackground

三、案例关键代码

dialog的xml

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/cl_dialog_content"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="50dp"

android:background="@color/m_white"

app:layout_constraintTop_toTopOf="parent">

android:id="@+id/iv_select_active"

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_marginLeft="16dp"

android:layout_marginTop="16dp"

android:scaleType="centerCrop"

android:src="@mipmap/icon_sel_l"

android:visibility="invisible"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/tv_select_active"

style="@style/tv_w_w_s16_c_33_bold"

android:layout_width="0dp"

android:layout_height="0dp"

android:gravity="center_vertical"

android:paddingLeft="16dp"

android:text="@string/active"

app:layout_constraintBottom_toTopOf="@id/view_line"

app:layout_constraintLeft_toRightOf="@id/iv_select_active"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/view_line"

android:layout_width="0dp"

android:layout_height="1px"

android:layout_marginTop="16dp"

android:background="@color/c_f2efef"

app:layout_constraintLeft_toLeftOf="@id/iv_select_active"

app:layout_constraintTop_toBottomOf="@id/iv_select_active" />

android:id="@+id/iv_select_task"

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_marginLeft="16dp"

android:layout_marginTop="16dp"

android:layout_marginBottom="16dp"

android:scaleType="centerCrop"

android:src="@mipmap/icon_sel_l"

android:visibility="invisible"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintTop_toBottomOf="@id/view_line" />

android:id="@+id/tv_select_task"

style="@style/tv_w_w_s16_c_33_bold"

android:layout_width="0dp"

android:layout_height="0dp"

android:gravity="center_vertical"

android:paddingLeft="16dp"

android:text="@string/task"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toRightOf="@id/iv_select_task"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toBottomOf="@id/view_line" />

android:id="@+id/view_empty"

android:layout_width="match_parent"

android:layout_height="0dp"

app:layout_constraintTop_toBottomOf="@id/cl_dialog_content"

app:layout_constraintBottom_toBottomOf="parent"

/>

java代码:

fun showSelectActiveOrTask(context:Context,currentSelect:String,listener: DialogClickBackListener?){

var dialog = getCancelDialog(context)

val window = dialog.window

window.setGravity(Gravity.TOP)

window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)

window.setContentView(R.layout.dialog_active_task_select)

val ivSelectActive = window.findViewById(R.id.iv_select_active)

val tvSelectActive = window.findViewById(R.id.tv_select_active)

val ivSelectTask = window.findViewById(R.id.iv_select_task)

val tvSelectTask = window.findViewById(R.id.tv_select_task)

val view_empty = window.findViewById(R.id.view_empty)

if (currentSelect == "活动"){

ivSelectActive.visibility = View.VISIBLE

} else {

ivSelectTask.visibility = View.VISIBLE

}

view_empty.setOnClickListener {

listener?.onClickBack(currentSelect)

dialog.dismiss()

}

//活动

ivSelectActive.setOnClickListener {

listener?.onClickBack("活动")

dialog.dismiss()

}

tvSelectActive.setOnClickListener {

listener?.onClickBack("活动")

dialog.dismiss()

}

//任务

ivSelectTask.setOnClickListener {

listener?.onClickBack("任务")

dialog.dismiss()

}

tvSelectTask.setOnClickListener {

listener?.onClickBack("任务")

dialog.dismiss()

}

}

其中:

private fun getCancelDialog(context:Context): Dialog {

return AlertDialog.Builder(context, R.style.mydialog).setCancelable(true).show()

}

@null

true

false

true

@android:color/transparent

true

0.6

四、总结

关键是布局,dialog的style

android 弹出框带标题栏,Android开发靠标题栏的弹框相关推荐

  1. android 弹窗确认,弹出一个带确认和取消的dialog实例

    实例如下: /** * 弹出一个带确认和取消的dialog * @param context * @param title * @param msg * @param okbutton * @para ...

  2. java一个界面用另一个界面的值_如何将参数/值从一个弹出窗口传递到Angular2中的另一个弹出窗口...

    我在Angular2中有一个要求,我需要打开第一个弹出窗口,用户会输入一些值 . 在某些用户事件(即按钮单击)上,我需要关闭该弹出窗口并打开另一个弹出窗口,其中包含用户在第一个弹出窗口中输入的值 . ...

  3. android 弹出网格菜单,在android中的recyclerView中显示弹出按钮的确...

    as per my above comment可以使用Popup Menu Android Popup Menu displays the menu below the anchor text if ...

  4. android中弹出窗口,如何在Android中创建弹出窗口(PopupWindow)

    如何制作一个简单的Android弹出窗口 这是一个更完整的例子.这是一个补充性答案,涉及一般情况下创建弹出窗口的过程,而不一定是OP问题的具体细节.(OP要求取消按钮,但这不是必需的,因为用户可以在屏 ...

  5. android 8.0 屏蔽首次开机弹出的‘即将完成 Android 更新’的弹窗

    在Android 8.1版本上,每次刷机开机后,会弹出Android系统正在更新的提示,客户要求去掉该提示 1.首先,通过字符串找到相对应的title,R.string.android_upgradi ...

  6. android弹出广告cn.yipianfengye.android:ad-library:1.0使用

    1.添加依赖 //广告弹屏 implementation 'cn.yipianfengye.android:ad-library:1.0' 2.添加权限下面使用 3.添加数据 /*** 初始化数据*/ ...

  7. android 软件盘未弹出如何获取高度,Android 软键盘的那些坑,一招搞定!

    3 软键盘高度获取 对于上面的问题1,既然想要EditText单独顶上去,那么就需要知道当前键盘弹出的高度,再设置EditText坐标即可. 问题的关键转变为如何获取键盘的高度. Activity窗口 ...

  8. android 弹出菜单环形,『Android自定义View实战』实现一个小清新的弹出式圆环菜单...

    前言 Android表现快捷菜单的形式有很多种,比如使用PopupWindow弹出来的小弹窗,类似QQ的侧拉功能菜单,以及之前讲过的弧形菜单( Android 自定义弧形旋转菜单栏--卫星菜单),这次 ...

  9. android点击弹出滑动条,IndicatorSeekBar Android自定义SeekBar,滑动时弹出气泡指示器显示进度...

    overview.png 之前在网上看到了当Slider控件在滑动时会弹出气泡指示器,觉得很有趣,于是就进行拓展,就有了下面介绍的一个安卓控件:IndicatorSeekBar.先附上Indicato ...

  10. android点击弹出日期选择器,关于Android 点击按钮弹出日期选择器

    首先是 xml文件 xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width= ...

最新文章

  1. Spring Boot + Redis 操作多种实现
  2. TensorFlow之张量
  3. cmake+qt+qtcreator的配置,解决Q_OBJECT的问题
  4. _vsnprintf 用法
  5. 一个方法搞定安卓路由跳转
  6. 笔记-计算机网络基础-综合布线系统
  7. 04_传智播客iOS视频教程_类是以Class对象存储在代码段
  8. 同方知网软件_国产精品软件天若OCR:支持图像识别/自动翻译/公式识别等
  9. 大数据“跨界”文化金融
  10. 教育院校公共机房虚拟桌面解决方案
  11. 最全傅里叶变换和拉普拉斯变换公式总结
  12. 麻省理工18年春软件构造课程阅读09“避免调试”
  13. java分布式框架_5个强大的Java分布式缓存框架推荐
  14. QuantLib 开源金融计量学工具箱下载
  15. OSChina 周日乱弹 ——为了下一代也要努力找个漂亮的媳妇
  16. 贪吃蛇java游戏代码_java实现贪吃蛇游戏代码(附完整源码)
  17. 型如=?gb2312?B?的转码
  18. LiveNVR监控摄像头Onvif/RTSP接入流媒体平台如何配置默认用户账户及用户密码
  19. poj_1363_Rai
  20. 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

热门文章

  1. 【图像处理面试题】——1
  2. ANSYS 简支梁的约束
  3. java applet 文本框_Java Applet 文本框 TextField 小例 | 学步园
  4. python数据类型汇总_python基础数据类型汇总
  5. 基于几何距离的椭圆拟合
  6. Doxygen for C++使用说明——注释代码一
  7. 拉取ftp服务器上的文件_winscp和云服务器,2步实现winscp将文件上传到腾讯云Linux云服务器...
  8. 《过早退出是一切失败的根源》读后感
  9. 设计模式_01_单一原则
  10. 系统应用iPad设备应用需定制开发的3大理由