自定义view

Django xadmin自定义页面

谁说我不能喝 提交于 2019-12-07 16:59:00
django自带的admin因为功能和样式比较简陋,所以很多程序员选择第三方后台xadmin做后台,但是xadmin的自带管理页面非常有限,有时我们也想自己定制一些功能页面,网上关于这个需求的教程实在是太少了,或者讲得实在是很模糊,经过我自己的一些摸索后现在来谈一下我总结的经验,我遇到的坑都用会在注释里写命 (此定制页面非xadmin添加插件式定制,而是添加路由,并通过view,和自定义html模板生成自定义页面) 第一步需要在左边侧栏添加需要的菜单 在adminx.py下添加以下代码# 设计左侧菜单 class GlobalSetting(object): #名称不能改 def get_site_menu(self): #名称不能改 return [ { 'title': '测试的', 'icon': 'fa fa-bar-chart-o', 'menus': ( { 'title': '测试子菜单1', #这里是你菜单的名称 'url': '/xadmin/test_view', #这里填写你将要跳转url 'icon': 'fa fa-cny' #这里是bootstrap的icon类名,要换icon只要登录bootstrap官网找到icon的对应类名换上即可 }, { 'title': '测试子菜单2', 'url': 'http://www.taobao.com',

android 自定义View组件,重要函数的回调的顺序

心已入冬 提交于 2019-12-07 16:17:19
1. onFinishInflate() 当View中所有的子控件均被映射成xml后触发 onMeasure( int , int ) 确定所有子元素的大小 onLayout( boolean , int , int , int , int ) 当View分配所有的子元素的大小和位置时触发 onSizeChanged( int , int , int , int ) 当view的大小发生变化时触发 onDraw(Canvas) view渲染内容的细节 onKeyDown( int , KeyEvent) 有按键按下后触发 onKeyUp( int , KeyEvent) 有按键按下后弹起时触发 onTrackballEvent(MotionEvent) 轨迹球事件 onTouchEvent(MotionEvent) 触屏事件 onFocusChanged( boolean , int , Rect) 当View获取或失去焦点时触发 onWindowFocusChanged( boolean ) 当窗口包含的view获取或失去焦点时触发 onAttachedToWindow() 当view被附着到一个窗口时触发 onDetachedFromWindow() 当view离开附着的窗口时触发,该方法和 onAttachedToWindow() 是相反。

listView 加载图片过多,滑动时 较阻塞,如何解决?

a 夏天 提交于 2019-12-07 10:31:09
问:listView 加载图片过多,滑动时 较阻塞,如何解决? 答:方法一: 控制硬加速。 你可以在以下级别上分别控制硬加速: Application、 Activity、 Window、 View。 android:hardwareAccelerated="true" http://blog.csdn.net/janronehoo/article/details/7517284 Application级   在你的manifest文件中,把以下属性添加到<application>标签来对你的整个应用启用硬加速: <applicationandroid:hardwareAccelerated="true" ...> Activity级   如果你的应用在全局启用硬加速时行为不正确,你可以对个别activities单独启用硬加速.欲在actvity级别启用或禁止硬加速,你可以对<activity>元素使用android:hardwareAccelerated属性.下面的例子在整个应用中启用了硬加速但对一个activity禁止了硬加速: <applicationandroid:hardwareAccelerated="true"> <activity... /> <activityandroid:hardwareAccelerated="false" /> </application>

Android第四十四天

流过昼夜 提交于 2019-12-07 01:10:44
一、菜单 (1)选择菜单(OptionsMenu) 第一种方法: 1、在res目录下建立一个名称是menu的文件夹; 2、在menu下面建立一个XML文件(默认就是menu的类型) 3、在建立的XML文件中添加菜单的选项 XML中有很多的属性: <1>android:orderInCategory 表示的意思是:确定当前的item在整个item中所在的位置(数字越小越靠前) <2>android:title 确定选项的内容 <3>android:id 设置选项ID <4>android:icon 设置选项的图标 <5>android:showAsAction 设置图标的显示方式 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/select_01" android:orderInCategory="1" android:title="马超"/> <item android:id="@+id/select_02" android:orderInCategory="2" android:title="马云禄"/> <item android:id="@+id/select_03"

Android面试题:Listview

爱⌒轻易说出口 提交于 2019-12-06 22:42:23
今日,看到群里朋友发的一部分面试题,决定把这这些面试题的答案写下来,如下: 1、ListView怎么和ScrollView兼容? ok 2、ViewPager无限轮播图片 3、out of memory内存溢出怎么解决 4、三级缓存如何实现 5、 登录时怎么保存用户名密码实现下次自动登录 6、 如果sp只存储用户名,比如三个用户都存在sp里,取出来怎么取?存进去怎么存?你怎么区分 7、你们登录就只有登录成功和登录失败吗?难道没有重连机制?断网了以后又有网了重新来到登录界面怎么登录? 8、怎么保持在线状态 9、toobar,actionbar玩的转不? 10、 include标签总会吧? 11、 webview配置会吧 12、 CoordinatorLayout和recycleview会吧 13、tab用actionbar就能实现你知道吗? 14、你知道Listview里有Button就点不动了你知道吗 ok 15、 简单的动画你会吗?哪怕是运用到activity的出现与退出 ,以及 属性动画 16、view的点击事件跟dialog的点击事件很容易引错包 17、集合List<>为什么动态增长?它有默认长度的,有时候用他步入指定好长度的数组 18、下载时,异步任务和子线程他俩的区别 19、recycleview代替listview,gridview,瀑布流三种模式切换自如 20

Android触摸反馈

依然范特西╮ 提交于 2019-12-06 20:26:23
事件分发 当点击事件发生时,事件最先传递给Activity,Activity会首先将事件将被所属的Window进行处理,即调用 superDispatchTouchEvent() 方法。通过观察superDispatchTouchEvent()方法的调用链,我们可以发现事件的传递顺序: PhoneWinodw.superDispatchTouchEvent() DecorView.dispatchTouchEvent(event) ViewGroup.dispatchTouchEvent(event) 事件一层层传递到了ViewGroup里。 每到一个子view,看他的onInterceptTouchEvent 方法是否拦截,ontouch是否消费方法,如果没有继续向下dispatchTouchEvent分发事件,都不处理向上传,当回到顶级,若顶层(activity)也不对此事件进行处理,此事件相当于消失了(无效果)。 View 没有onInterceptTouchEvent()方法 ,有dispatchTouchEvent,一但有点击事件传递给它,它的ouTouchEvent()方法就会被调用。 ouTouchEvent是否消费事件取决于 ACTION_DOWN 事件 或 POINT_DOWN 事件是否返回 为 true 递归 ViewGroup(View)

课设

本小妞迷上赌 提交于 2019-12-06 20:23:31
目录 1. 需求分析 1 1.1 系统需求分析 1 1.2 用例分析 1 2. 系统设计 2 2.1 系统总体设计 2 2.2 系统数据库设计 1 2.3 系统各功能模块 2 3. 系统测试 2 3.1 注册页面测试 2 3.2 登录界面测试 3 3.3 功能界面测试 3 3.3 好友管理界面测试 4 3.3 收藏界面测试 5 4. 系统实现 5 4.1 登录 (MainActivity) 5 4.2 注册 (Main2Activity) 7 4.3 首页 (Main3Activity) 8 4.4 我的收藏 (ShujiActivity) 9 4.5 好友管理 (jiahaoyou) 10 4.6 数据库的创建 (MyHelper) 13 5. 总结 13 附录 1 14 一.课设题目 14 基于 Android 系统 族迹 APP的设计与实现 14 二.清单文件 14 三.布局代码 15 1.activity_jiahaoyou 15 2.activity_main 18 3.activity_main2 21 4.activity_main3 23 5.activity_shuju 24 6.fragment_dashboard 24 7.fragment_home 25 8.fragment_notifications 27 四. Java 代码 32 1

BottomSheet效果的两种实现方式

霸气de小男生 提交于 2019-12-06 19:43:05
BottomSheet效果的两种实现方式 单页面添加BottomSheet效果 BottomSheetDialog实现通用效果 BottomSheet的效果是指从屏幕底部向上滑的效果,是MaterialDesign风格的一种,视觉效果如下: 实现这种效果有几种不同的方式,如果是在一个固定的页面上添加这种效果,可以在该页面布局中添加BoottomSheet相关的控件。如果是作为通用控件来提供给不同页面使用,则可以使用BottomSheetDialog实现,本文将对两种方法进行讲解,其中会讲到一些使用上的细节,处理不好这些细节,会出现非常怪异的效果。 单页面添加BottomSheet效果 首先引入依赖包: compile 'com.android.support:design:27.1.1' 页面布局如下: < ? xml version = "1.0" encoding = "utf-8" ? > < android . support . design . widget . CoordinatorLayout xmlns : android = "http://schemas.android.com/apk/res/android" xmlns : app = "http://schemas.android.com/apk/res-auto" android :

Android学习——控制硬加速 hardwareAccelerated

醉酒当歌 提交于 2019-12-06 18:43:24
Android学习——控制硬加速 hardwareAccelerated 在3.0才有的。 分类: android学习 2012-04-27 13:59 8742人阅读 评论 (4) 收藏 举报 android application api null 测试 从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作.   启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然 而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素. 为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力: Application Activity Window View   如果你的应用使用了自定义绘制,需要在真实的设备上启用硬加速进行测试来找出问题."不支持的绘制操作"一节描述了已知的不能被硬加速的绘制操作以及如何避开它们. 控制硬加速   你可以在以下级别上分别控制硬加速: Application Activity Window View Application级  

Android中View绘制流程以及invalidate()等相关方法分析

橙三吉。 提交于 2019-12-06 16:55:13
前言: 本文是我读《Android内核剖析》第13章----View工作原理总结而成的,在此膜拜下作者 。同时真挚地向渴望了解 A ndroid 框架层 的 网友,推荐这本书,希望你们能够在Android开发里学到更多的知识 。 整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为 根 据 之前 设 置 的 状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘 (draw),其 框架过程如下: 步骤其实为host.layout() 接下来温习一下整个View树的结构,对每个具体View对象的操作,其实就是个递归的实现。 关于这个 DecorView 根视图的说明,可以参考我的这篇博客: 《Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起》 流程一: mesarue()过程 主要作用 :为整个View树计算实际的大小,即设置实际的高(对应属性: mMeasuredHeight )和宽(对应属性: mMeasureWidth ), 每个View的控件的实际宽高都是由父视图和本身视图决定的。 具体的调用链如下 : ViewRoot根对象地属性mView(其类型一般为ViewGroup类型