自定义dialog

小程序中自定义组件

左心房为你撑大大i 提交于 2020-03-27 02:38:35
之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官方对于自定义组件这一块有了比较大的变动,首先比较明显的感觉就是文档比以前全多了,有木有!(小程序文档),现在小程序支持简洁的组件化编程,可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中复用,提高自己代码的可读性,降低自己维护代码的成本! 本篇文章就是手把手教你实现小程序中自定义组件,坐稳啦~ 具体实现 要做自定义组件,我们先定一个小目标,比如说我们在小程序中实现一下 WEUI 中的弹窗组件,基本效果图如下。 Step1 我们初始化一个小程序(本示例基础版本库为 1.7 ),删掉里面的示例代码,并新建一个 components 文件夹,用于存放我们以后开发中的所用组件,今天我们的目的是实现一个 弹框 组件,因此,我们在 components 组件中新建一个 Dialog 文件夹来存放我们的弹窗组件,在 Dialog 下右击新建 Component 并命名为 dialog 后,会生成对应的 json wxml wxss js 4个文件,也就是一个自定义组件的组成部分,此时你的项目结构应该如下图所示: Step2 组件初始化工作准备完成,接下来就是组件的相关配置

基于element封装下 弹窗

这一生的挚爱 提交于 2020-03-06 11:00:54
基础层:dialog <!-- 自定义弹窗模板 --> <template> <el-dialog v-bind="$attrs" :close-on-click-modal="$attrs['close-on-click-modal'] ? $attrs['close-on-click-modal'] : false" :close-on-press-escape="$attrs['close-on-press-escape'] ? $attrs['close-on-press-escape'] : false" v-on="$listeners" > <!-- <slot name="dialog" /> --> <slot name="body" /> <template slot="footer"> <slot name="footer" /> </template> </el-dialog> </template> <script> export default { name: "dialog", mounted() { //初始化title,防止冲突 this.$el.title=""; }, }; </script> <style lang='scss' scoped> .flexFooter{ display: flex; justify-content: flex

android dialog去白色边框,设置边框大小,加载gif动画

谁说胖子不能爱 提交于 2020-03-05 20:00:32
之前写过一个alertdialog加载gif动画的程序,但其实在调节的过程中遇到了很多问题,最重要的就是,无法让动画跟alertdialog框默认样式完美融合,总是多出来空白的部分,图片尺寸也失真, 至此,知道alertdialog对话框不适合做自定义动画,它的样式比较局限于对话框.所以我用dialog重要实现了一次。。过程没太大不同,但它提供的自定义样式文件帮助还是很大的; 这边我就简写一下: 一.在res新建drawable文件夹,导入gif的帧图片集合,建animail_pro.xml,设置编写图片集; 具体操作请看这里: http://www.cnblogs.com/userbibi/archive/2012/04/24/2467845.html 二.在value文件夹里建一个style.xml样式文件,定义dialog样式 style.xml <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Dialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item>

去除安卓自定义Dialog黑色背景,设置无边框,透明

僤鯓⒐⒋嵵緔 提交于 2020-03-05 20:00:01
我们在自定义Dialog的时候,往往会希望除去安卓系统定义背景和标题,以便于更好的显示我们自己想要的效果。 其实我们只需要注意几个地方就行了。 1.在Style文件的中定义Dialog的主题 < style name= "MyDialog" > < item name= "android:windowFrame" >@null </ item > < item name= "android:windowBackground" >@android:color/transparent </ item > < item name= "android:windowNoTitle" >true </ item > < item name= "android:windowIsFloating" >true </ item > < item name= "android:windowContentOverlay" >@null </ item > </ style > 主要是这句:<item name=" Android :windowBackground">@ android :color/transparent</item> 把windowBackground设置为透明 2.在自定义的Dialog构造方法中使用,如果你在DIalog的布局文件中去使用这个主题是没有作用的

Android自定义的弹窗

放肆的年华 提交于 2020-02-19 03:49:56
package com.microduino.qoobot.view; import android.app.Activity; import android.app.Dialog; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import com.microduino.qoobot.R; /* * :Created by z on 2019/1/16 */ public abstract class BaseDialog { private Dialog dialog; private Activity activity; public BaseDialog(Activity activity,int res){ dialog = new Dialog(activity, R.style.BuildDialog); LayoutInflater inflater = LayoutInflater.from(activity); View view = inflater.inflate(res, null);

Android 自定义通用Dialog

夙愿已清 提交于 2020-02-15 08:07:04
public MyDialog(Context context, int width, int height, View layout) { super(context, R.style.DialogTheme); setContentView(layout); Window window = getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.width = width; params.height = height; params.gravity = Gravity.CENTER; //显示的位置 window.setAttributes(params); } 使用: int width = getResources().getDisplayMetrics().widthPixels;//获取popwindow展示的宽 int height = getResources().getDisplayMetrics().heightPixels;//获取popwindow展示的高 MyDialog mMyDialog = new MyDialog(this, width * 3 / 4 , height * 3 / 5, view, R.style.DialogTheme);

Android自定义进度条请求DiaLog

寵の児 提交于 2020-02-02 09:49:15
实现效果 github下的代码:https://github.com/miangezuishuai/CustomProgressDialog 导入方法: 首先自定义Dialog的背景 res/drawable/progress_custom_bg.xml < ? xml version="1.0" encoding="UTF - 8" ? > <shape xmlns : android="http : //schemas.android.com/apk/res/android" > <solid android : color=" #ff404040" /> <corners android : bottomLeftRadius="8dp" android : bottomRightRadius="8dp" android : topLeftRadius="8dp" android : topRightRadius="8dp" / > </shape > 接着在drawable下准备12张进度条图片,使用帧动画串起来,于drawable/spinner.xml 第三,定义diolog界面,res/layout/progress_custom.xml 第四,res/values/styles.xml下,添加如下代码 < !-- 自定义Dialog - - > <style name

提升用户体验,你不得不知道的事儿——三种提醒框的微技巧

久未见 提交于 2020-01-24 19:28:51
大家都知道无论是android开发还是其他的开发,用户的体验都是很重要的事儿,下面就android开发中的三种提醒方式,Toast,SnackBar,Dialog做一些细节上的处理,或许能让你的产品更有用户亲和力。 1)Toast Toast是一个轻量级的提醒框,相信各位小伙伴,肯定在平时开发中用到地方堪称最多,使用方式非常简单,简单的一句代码搞定。 1 Toast.makeText(this,"This is a toast...",Toast.LENGTH_SHORT).show(); 使用Toast类的makeText方法,传入三个参数:context,显示的字符串,显示时间,最后再调用show方法。 而简单的这样写,一定会有一个小毛病,当用户多次点击触发这个Toast事件的时候,你一定会恼怒到,这个东西需要很久才可以取消掉,真的是烦,大概就是这样。 可见这样是及其的影响用户体验的,要是可以点击N次,还是只是覆盖显示最后一次的提示就好了,恩,其实这个还是很简单,再加上,我们一个app中肯定有一万个地方会用到Toast,所以不妨写一个专门处理UI的工具类,UIUtil。 1 package com.example.nanchen.dialogtoastsnackbardemo; 2 3 import android.app.ProgressDialog; 4 import

Android 代码优化点滴

天大地大妈咪最大 提交于 2020-01-23 02:13:01
MVC 模型:Mode,View,Controller与view相关的类:DragLayer (自定义的帧布局DragLayer 包含hotseat ,workspace ,和DragController , DragListener 等一起使得桌面上的shortcut具备拖动功能,和DropTarget一起具备删除功能 桌面拖动,删除的处理:将workspace 和DragLayer通过一些接口:DropTarget, DragSource, DragScroller配套完成,DragLayer 和DragController 操纵以上接口类,在workspace 去实现具体)àworkspace(自定义的类似pageview,自己可以snapToPage,即可在不同的cellLayout之间切换,同时实现拖动,触摸等接口,做具体的动作)à cellLayout(默认一个workspace 包含两个cellLayout,可以增加,删除 )à ShortcutAndWidgetContainer(在cellLayout 中,真正是它来确定桌面上的Shortcut 的位置,大小等)à (ShortcutInfo,FolderInfo) 与Mode 相关的类:LauncherProvider 提供和数据库直接操作相关的接口,LauncherModel 非UI线程(后台线程

Android Launcher 详解

扶醉桌前 提交于 2020-01-22 08:17:24
(1) Launcher的定义:Android系统启动后,加载的第一个程序,是其他应用程序的入口。 (2) Launcher的构成:HomeScreen(1.workspace(AppWidget,Wallpaper,Livefolder,ShortCut),2.HotSeats,3.AllApps/allApplist:GridView) (3) 针对Launcher的开发类型: 1. 开发自定义的Launcher 2. 与Workspace相关的开发(AppWidget,Wallpaper,Livefolder,ShortCut) (4) 解读Launcher源代码(以ShortCut为例),Launcher为系统级应用,位于Applications层。源代码位于MyAndroid\packages\apps\Launcher2中,可讲它导入eclipse中。 (5) 看Manifest文件可知,Launcher的主Activity为:com.android.launcher2.Launcher。下面是它的部分配置信息: <activity android:name="com.android.launcher2.Launcher" android:launchMode="singleTask"> <intent-filter> <action android:name=