最新文章Jetpack Compose
Compose API 设计原则视图树一旦生成便不可随意改变,视图的刷新依靠Composable函数的反复执行来实现
composable函数只能在composeable函数中调用
在Compose的世界中,一切组件都是函数,由于没有类的概念,因此不会有任何继承的层次结构,所有组件都是顶层函数
可以在DSL中直接调用
Composable作为函数相互没有继承关系,有利于促使开发者使用组合的视角去思考问题
基本概念啥的都有点不太一样,和之前学的
常用UI组件Compose提供了Column,Row,Box三种布局组件,类似于传统视图中的LinearLayout(Vertical),LinearLayout(Horizontal),RelativeLayout
Modifier修饰符Modifier允许我们同诺链式调用的写法来为组件应用一系列的样式设置,如边距,字体,位移等,在Compose中,每个基础的Composable组件都有一个modifier参数,通过传入自定义的Modifier来修改组件的样式
size
设置组件大小
1234567891011121314Image( ...
1
功能设计
一款用于展示照片的app
没错,就是单纯的展示照片,展示一个摄影人的照片
原图展示,保存照片原图,绝不压缩
精准参数展示
机型
镜头
光圈
快门
iso
位置记录-可自己选择位置
照片分类与标签功能
webdav云备份
无广告
暂时就这么多?
原型设计大致草图如下,分为横屏图片和竖屏图片:
首页:
首页中具体的item
技术选型暂定只有安卓端,使用kotlin开放安卓
后面可能会有electron的版本
25新年Plan
除夕除夕前一天放假,也就是1.27
这天可以准备出发带的装备(修车装备,衣服,吃喝)
然后除夕当天出发
130公里,按匀速20,加上中间吃饭休息,大概8个小时就能到,到的那天先去探路,计算好酒店到海边的车程(订不到酒店就另说了)
如果是早上8点出发,8个小时就是下午4点,到地方找到海滩位置,找到停车位置,准备就绪回酒店休整
很重要的一件事是在海边找停车的地方,汽车停车场可以考虑找一找,至少安全,车别被偷了就行
黑排角图片
初一出发初一看完日出,中午出发前往80公里外的汕尾
汕尾有什么好逛的地方?
主题为大海,这里有一个风车岛,距离市中心大概20km
有一条长度3km的海上公路
长这样:海上公路
以及在附近的一个红海湾
海上城堡
那么如果要在汕尾逛的话,也就是初二一天,逛这两个地方,然后吃吃饭,住一晚,初三早上出发前往潮汕
初三出发汕尾到汕头,这一程可以走一段丹东线试试
会比正常路线远个20km,但是丹东线有一段沿海公路,大概3km
这一段大概是200km,假设能一天骑过去的话,那就是初三晚上到达潮汕
能骑过去吗?
潮汕物价很高,而能逛的地方,好像又不多?
这里有一个石碑山灯塔
但 ...
尚硅谷Java面试题
再找不到工作怎么办
基础篇i++热身只要记住i++和++i的区别即可,i++就是先把i的原值进行操作,操作完后进行加,所以输出的是2,然后i的值加了1*,所以第三行i++的值还是2,而++i则表示先给i+1,然后进行操作,所以会先改变i的值,当然如果是单独的i++或者++i是一样的.
12345678910111213public class IPlusPlus { public static void main(String[] args) { int i = 1; System.out.println("i: " + i); // 1 System.out.println("++i: " + ++i); // 2 System.out.println("i++: " + i++); // 2 System.out.println("i: " + i); // 3 System.out.pri ...
Android开发
布局前面三种布局分别是
LinearLayout-线性
RelativeLayout-相对
FrameLayout-单帧
这三种都挺简单的,不用多说
ConstrainLayout约束布局-为子view添加约束来确定位置
通过减少嵌套,来减少过度绘制,从而优化布局
View几点注意:
在线性布局中垂直布局,可以用orientation=”vertical”来实现
跑马灯的效果
android:singleLine="true"
android:ellipsize="marquee"
在代码中,开启:textView.setSelected(true);即可实现跑马灯的效果
Activity安卓生命周期图:
开始阶段:
onCreate:页面创建(用于数据初始化,比如绑定事件)
onStart:页面可见,但不能交互
onResume:页面可见,且能交互
结束阶段
onPause:页面不能交互了
onStop:页面不可见-但是后台还在
onDestory:页面摧毁-后台也没了(数居收尾,保存工作)
Activity之间 ...
Electron入门
Electron介绍
一款应用广泛的跨平台的桌面应用开发框架
Electron的本质是结合了Chromium与Node.js
使用HTML,CSS,JS等Web技术构建桌面应用程序
Electron流程模型
创建Electron项目直接npm i electron -D先安装
主进程->预加载脚本->渲染进程而预加载脚本是运行在渲染进程上的
进程通信渲染进程->主进程(单向)一个简单的需求,在窗口内输入一个字符串,然后将字符串写入到磁盘中
也就是渲染进程传递到主进程,要借助预加载脚本
首先在预加载脚本中写上传递参数的方法
1234567contextBridge.exposeInMainWorld('myAPI', { version: process.versions.electron, // 这个就相当于传递数据的桥梁,供渲染进程使用 saveFile: (data) => { ipcRenderer.send('file-save', data) ...
框架面经
以下对继承的描述错误的是:
Java中的继承允许一个子类继承多个父类
父类更具有通用性,子类更具体
Java中的继承存在传递性
当实例化子类时会递归调用父类中的构造方法
访问修饰符作用范围由大到小的是
pubilc-protected-default-private
以下选项不是Object类的方法是
clone()
finalize()
toString()
hasNext()
以下抽象类描述正确的是
抽象类没有构造方法
有抽象方法的类一定是抽象类
抽象类必须提供抽象方法
抽象类可以通过new关键字直接实例化
以下对接口的描述错误的是
接口没有提供构造方法
接口中的方法默认使用public,abstract修饰
接口不允许多继承
接口中的属性默认使用public,static,final修饰
一个类实现一个接口,就要实现这个接口的全部抽象方法,若没有实现全部的抽象方法,则这个类是抽象类
输出结果是什么:
1234567891011121314151617public class Test extends Father { pri ...
Uniapp实现微信小程序登录
整体流程就是
uniapp调用login方法,指定为微信登录,将用户的授权码(临时票据)发送至后端
后端使用该临时票据,发送请求,请求用户的openid
没办法获取用户信息了,像昵称这种东西只能是用户授权微信登录后自行填写
uniapp代码实现12345678910111213141516171819202122232425262728293031323334uni.login({ "provider": "weixin", "onlyAuthorize": true, // 微信登录仅请求授权认证 success: async function (event) { const { code } = event //客户端成功获取授权临时票据(code),向业务服务器发起登录请求。 console.log('正在请求后端接口,获取openid,code为:', code) const res = await http<strin ...
Vue3+Ts
创建vue3项目不适用vue-cli了,直接上vite
npm create vue@latest
然后选择一些配置项就行了,ts就ts呗
Vue3核心语法setupsetup是vue3中一个新的配置项,值是一个函数,它是Composition Api表演的舞台,组件中所用到的:数据,方法,计算属性,监视等等,均配置在setup中
setup中无法使用this,是undefined
想要只是用一个script,但又想自定义组件名,可以使用这个插件
1npm i vite-plugin-vue-setup-extend -D
然后在vite.config.ts中引入
1234import VueSetupExtend from 'vite-plugin-vue-setup-extend' plugins: [ VueSetupExtend(), ],
setup基本使用
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
uni-app学习笔记
创建项目通过HBuilderX创建直接新建项目,选择vue的版本即可
通过命令行创建拉取vue3+ts的版本:npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
然后进入项目目录,下载依赖pnpm i(装了个pnpm)
记得加上appId
运行就用:npm run dev:mp-weixin
好好好,难道说我还要学个ts?
那这就学的太多了吧,先看看吧
用Vscode就直接导入就行了
vscode要安装些插件才能用着舒服,然后还要安装一个类型声明文件:
1pnpm i -D @types/wechat-miniprogram @uni-helper/uni-app-types
然后到manifest.json中配置小程序id
到tsconfig.json中加上以下配置,用于语法检查1234567891011121314"types": [ "@dcloudio/types", "@types/wechat-miniprogram", ...