android 弹出框带标题栏,Android开发靠标题栏的弹框

一、效果图

0ba352b4b12e

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法基础:图的相关算法知识笔记

一、图的相关算法1、图的分类知识如下图:2、生成树概念对连通图进行遍历,过程中所经过的边和顶点的组合可看做是一棵普通树,通常称为生成树。连通图的生成树具有这样的特征:边的数量 顶点数 - 13、最小生成树在连通网的所有生成树…

java中break和continue的用法例子

break用于switch语句 1. break用于switch语句中,终止switch语句 下面先看 加上break,效果如下 我们可以看到,没有用过break关键字时,不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体swit…

ftp 工具_ftp工具,ftp工具有哪些

对于ftp工具,你了解多少?其实一般人也接触不到这种软件。ftp工具主要是针对从事网站管理的工作人员比较有利的一款工具。可以帮助他们快速的解决工作中的问题。方便、简单、快捷又明了的解决问题。那ftp工具有哪些呢?接下来给大家推荐四款好用…

盘点世界十大软件外包公司排名是哪些公司

排名第一:IBMIBM,总部在纽约的阿蒙克。托马斯沃森19世纪80年代在美国成立,是全球最大的信息技术和商业解决方案公司,在全球拥有超过30万名员工,业务遍及160多个国家和地区。电脑上的制作非常出名,事实上,IBM在软件方面取得了巨大的成就,特别是在一些IBM服务器上使用的软件平台上…

判断不为空和不为空串的方法java

判断不为空和不为空串的方法 方法一:用StringUtils工具类 首先要引入依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId> </dependency> if( StringUtils.isNotBlank(str3) && St…

android xml事件,安卓事件

1、自定义内部类2、匿名内部类3、当前activity去实现事件接口4、在布局文件xml中添加点击事件属性(使用频率非常高)补充&#xff1a;a、Android 在xml文件中 给某个控件声明 id 是: "/自定义名字" &#xff0c;获取是&#xff1a; "/自定义的名字" &#x…

Cocos2d-x v3.0物理系统 利用PhysicsEditor创建多边形

Cocos2d-x 3.0的新物理系统我就不必多说了&#xff0c;接触一段时间&#xff0c;感觉还是不错的。对于那些基本概念&#xff0c;网上的教程已经泛滥了&#xff0c;就不多说了&#xff0c;不过对于创建多边形物体的教程&#xff0c;还真不多&#xff0c;很多都是创建圆形和矩形&…

公众号开发 单独 给某个用户 推送消息_韩国5G用户6月底已达134万 较5月底增加近70%...

中关村在线消息&#xff1a;韩国三大运营商SK、KT和LG率先于去年12月开始向企业用户提供商用5G 服务&#xff0c;今年4月初推出面向个人消费者的5G民用服务。韩国作为全球首个推出5G 服务的国家&#xff0c;他们的5G用户数量在6月时已经突破100万大关。日前韩国公布6月底最新的…

程序语言的概念知识笔记

1、低级语言和高级语言 计算机指令程序&#xff1a;0、1 组成的机器指令序列。特点&#xff1a;效率低、可读性差、难以维护。 汇编指令&#xff1a;用常用的符号代替0、1 序列来 表示机器指令&#xff0c;例如用ADD表示加法。 高级语言&#xff1a;面向对象设计的各类应用的程…

java lambda 表达式中的双冒号和箭头的用法 ::

先构造一些数据,创建一个User类 java lambda 表达式中的双冒号的用法 &#xff1a;&#xff1a; 双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名 如下图所示 User是一个类, getAge是方法名,注意是方法名呀&#xff0c;后面没有括号()的。为什么不要括号…

linux内核设计与实现 中文第三版 pdf_大牛推荐的5本 Linux 经典必读书

今天给大家推荐5本Linux学习相关的书籍&#xff1b;这些书籍基本都是很多大牛推荐过&#xff0c;并且深受业界好评的书&#xff1b;虽然只有5本&#xff0c;但是相信把5本全都认真看过的同学应该不多吧&#xff1f;希望这些书能够帮助你进阶为大牛&#xff01;5.《鸟哥的 Linux…

号称最好的国产操作系统在 Windows 10 面前能否一战?

统信软件旗下的UOS操作系统正式推出UOS V20个人版&#xff0c;并开启99元预售活动。统信UOS虽名不见经传&#xff0c;但身披“国产操作系统”外衣的它却让科技圈炸开了锅。有人说它是“国货之光”&#xff0c;堪称最好的国产系统&#xff0c;但也因为“收费”的问题引发一致批评…

js打开android应用程序,浏览器通过JS打开Android程序

做项目的时候&#xff0c;项目中有个需求&#xff0c;需要通过网页打开app&#xff0c;听到这个功能&#xff0c;我先是蛋疼了一会&#xff0c;但是在网上查了一下资料发现原理其实很简单&#xff0c;本质就是通过浏览器输入我们本地android程序的路径&#xff0c;不过这个路径…

lamba统计最大值,最小值,平均值,总和,个数

代码如下: List<Integer> ages Arrays.asList(1,3,5,7,8,10,12); IntSummaryStatistics intSummaryStatistics ages.stream().mapToInt(e -> e).summaryStatistics(); System.out.println("最大值: " intSummaryStatistics.getMax()); System.out.print…

程序语言的组成知识笔记

程序语言的基本成分包括数据‘运算、控制、传输。 1、程序语言的数据成分 数据成分指程序中的数据对象&#xff0c;数据是程序程序操作的对象&#xff0c;具有存储类型、数据类型、数据名称、作用域、生存周期等属性。 1.1 常量和变量 按照程序运行时数据能否改变&#xff0c;将…

python车牌识别逆光怎么办代码_这摄像头除了能逆光识别车牌,还会跟人打招呼?...

前段时间&#xff0c;笔者偶然在某宝上发现了一款变光全彩的智能警戒摄像头&#xff01;这款摄像头的型号为JA-F8&#xff0c;是一台室外防水枪机。说实话&#xff0c;这东西外观有点奇葩&#xff0c;谈不上好看。但正是因为它“骨骼精奇”&#xff0c;我才抱着好奇的心态点了进…

Executors创建线程池

java jdk1.5提供线程池 在java.util.concurrent包下提供工厂类Executors用于生产线程池&#xff0c;Executors提供了4种线程池 newFixedThreadPool&#xff1a; 创建一个线程池&#xff0c;该线程池重用固定数量的从共享无界队列中运行的线程。 newScheduledThreadPool&#x…

Maven项目中使用JUnit进行单元测试

1.打开maven项目中的pom.xml&#xff0c;添加JUnit 的jar包 2.在src/test/java下右键新建JUnit Test Cast 转载于:https://www.cnblogs.com/liaojie970/p/5588326.html

汇编程序基本原理知识笔记

1、汇编语言的概念 定义&#xff1a;为特定计算机或计算机系统设计的面向机器的符号化程序设计语言。汇编程序也就是用汇编语言编写的程序。计算机要运行汇编程序需要用专门的翻译程序进行翻译&#xff0c;然后计算机才可以识别。 汇编语句的分类&#xff1a;指令语句、伪指令语…

linux虚拟主机_Windows虚拟主机和linux虚拟主机有什么区别?

不少租用虚拟主机的用户在问一个同样的问题&#xff1a;windows空间和linux空间哪个好?这里给大家做一下全面的科普。一、windows空间和linux空间的区别系统的不同①windows空间则是由windows系统的服务器开设出来的空间&#xff0c;其中windows server系统环境大多为win2008&…