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.pswp.cn/news/271642.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271642.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271642.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法基礎:圖的相關算法知識筆記

一、圖的相關算法1、圖的分類知識如下圖:2、生成樹概念對連通圖進行遍歷,過程中所經過的邊和頂點的組合可看做是一棵普通樹,通常稱為生成樹。連通圖的生成樹具有這樣的特征:邊的數量 頂點數 - 13、最小生成樹在連通網的所有生成樹…

下午回來才后知百密于一疏忽

交了1700定金后就去了中介公司看了一下,比較偏僻窄小,然后里面有一些人和辦公桌比較擠,中介“董楠楠”介紹了一下女經理,然后就做地鐵回了,中途記憶,沒有冰箱然后統一口徑,對于只有一個電磁爐的…

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;后面沒有括號()的。為什么不要括號…

android 麥克風耳機,Android force AudioRecord使用耳機麥克風

我使用AudioRecord來錄制音樂&#xff0c;但是當我錄制它時使用手機麥克風。 我該如何強迫他使用耳機的頻道&#xff1f;Android force AudioRecord使用耳機麥克風我用這個代碼&#xff1a;int minSize AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_IN_MONO, Audi…

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…

簡單的學習心得:網易云課堂Android開發第六章SQLite與ContentProvider

一、SQLite 1、基本操作&#xff1a; &#xff08;1&#xff09;創建數據庫&#xff1a;在SQLiteOpenHelper的子類構造器中創建。 &#xff08;2&#xff09;創建表&#xff1a;在SQLiteOpenHelper的子類onCreate方法中&#xff0c;調用execSQL方法實現。 &#xff08;3&#x…

程序語言的組成知識筆記

程序語言的基本成分包括數據‘運算、控制、傳輸。 1、程序語言的數據成分 數據成分指程序中的數據對象&#xff0c;數據是程序程序操作的對象&#xff0c;具有存儲類型、數據類型、數據名稱、作用域、生存周期等屬性。 1.1 常量和變量 按照程序運行時數據能否改變&#xff0c;將…

python車牌識別逆光怎么辦代碼_這攝像頭除了能逆光識別車牌,還會跟人打招呼?...

前段時間&#xff0c;筆者偶然在某寶上發現了一款變光全彩的智能警戒攝像頭&#xff01;這款攝像頭的型號為JA-F8&#xff0c;是一臺室外防水槍機。說實話&#xff0c;這東西外觀有點奇葩&#xff0c;談不上好看。但正是因為它“骨骼精奇”&#xff0c;我才抱著好奇的心態點了進…

android sqlite alert table,android sqlite數據庫操作

sqlite有一點不同于其他常見數據庫&#xff0c;就是sqlite數據庫是存成文件的&#xff0c;可以直接把該文件從手機里導出來&#xff0c;以文件的形式存在&#xff0c;然后放到電腦上查看。Android操作數據庫有如下步驟&#xff1a;1、繼承SQLiteOpenHelper,實現里面的方法。pub…