自定义View
自定义View方案一些知识Android Touch事件传递机制(一) – onInterceptTouchEvent & onTouchEvent
onInterceptTouchEvent的ACTION_MOVE事件不执行_webview 不执行 ontouchevent 事件不执行onintercepttoucheven-CSDN博客
场景1
描述经典的底部导航,横向ViewPager2,里面的Fragment是一个竖向的线性布局,这个布局里面是一个顶部视图,底部视图为TabLayout+ViewPager2,然后ViewPager2里面的Fragment都是RecyclerView,滑动底部会将顶部布局顶到顶部才滑动自己
下面是网上一些案例和解决方案
AndyJennifer/NestedScrollingDemo: 😋😋😋A good app for understanding android nested scrolling
仿网易云音乐日推界面(监听AppBarLayout滑动+动态高斯模糊)_appbarlayout监听滑动-CSDN博客
解决方 ...
Leetcode CookBook算法
Leetcode CookBook算法算法集合的网站
https://leetcode.cn/leetbook/read/leetcode-cookbook
数组1. 两数之和1234567891011121314151617181920212223class Solution { public int[] twoSum(int[] nums, int target) { //n^2解法 int[] result = new int[2]; for (int i = 0; i < nums.length; i++) { boolean isHaveResult = false; for (int j = 0; j < nums.length; j++) { if (i == j) { continue; } ...
Android知识秘籍
总结自下面链接,转载请使用大佬的博客地址https://blog.csdn.net/qq_29966203/article/details/105455615?spm=1001.2014.3001.5502
第一章 四大组件
介绍一下四大组件?
Activity
生命周期
参数传递
启动过程
启动模式
状态保存 & 恢复
Service
启动方式 & 生命周期
适用场景(Service 与 Thread 对比)
Service 分类 & 使用
IntentService
Service和Activity 通信
ContentProvider
描述
使用
BroadcastReceiver
描述
分类
注册方式
使用方式:发送\接受\屏蔽 广播
Context
理解 & 作用
分类
内存泄露
Intent
指定当前组件要完成的动作
传递数据
Application
介绍一下四大组件?
Activity(活动)Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种。它为用户提供一个窗口 ...
Android提问问答
转存自下面路径,转载用大佬的原文https://blog.csdn.net/qq_29966203/article/details/123868018?spm=1001.2014.3001.5502
上
SD卡
路径
1234a).Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) //sd卡挂载状态 b).Environment.getExternalStorageDirectory().getPath() //sd卡路径 ->/storage/emulated/0 c).Environment.getDownloadCacheDirectory().getPath() //data/cache路径 d).Environment.getDataDirectory().getPath() //data
权限
12<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/> ...
Java知识秘籍
总结自下面链接,转载请使用大佬的博客地址https://blog.csdn.net/qq_29966203/article/details/105455615?spm=1001.2014.3001.5502
第一章 面向对象
面向对象三大特性?
对this和super的认识?
谈谈权限修饰符的特性?
对java多态的理解 /Java中实现多态的机制是什么?
静态属性和静态方法能被继承吗?静态方法又是否能被重写呢?
面向对象三大特性?面向对象的三大特性包括:封装、继承、多态。
封装封装是给对象提供了隐藏内部属性和行为的能力。通过public,protected,private修饰符来给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。它可以通过隐藏对象的属性来保护对象内部的状态,并且可以防止对象之间的不良交互,提高安全性。
12345678910111213141516171819202122232425262728293031323334353637// 对成员变量设置私有访问权限,对信息进行隐藏// 为每个成员变量提供对外公共方法访问(getter/sette ...
程序员面试金典(Java代码)
程序员面试金典01
面试题 01.01. 判定字符是否唯一
面试题 01.02. 判定是否互为字符重排
面试题 01.03. URL化
面试题 01.04. 回文排列
面试题 01.05. 一次编辑
面试题 01.06. 字符串压缩
面试题 01.07. 旋转矩阵
面试题 01.08. 零矩阵
面试题 01.09. 字符串轮转
面试题 01.01. 判定字符是否唯一
面试题 01.01. 判定字符是否唯一
12345678910111213class Solution { public boolean isUnique(String astr) { int[] hash = new int[26]; for (int i = 0; i < astr.length(); i++) { if (hash[astr.charAt(i) - 'a'] != 0) { return false; } else ...
7大设计原则+23种设计模式(Java代码版本)
7大设计原则+23种设计模式(Java代码版本)设计原则具体知识
单一职责原则
一个类=只有一个引起它变化的原因。(只负责担任一个职责)
如果一个类的职责过多,即耦合度太高=一个职责变化会影响到其他的职责
开放封闭原则
一个实体(类、函数、模块等)应该对外扩展开放,对内修改关闭(这个对应下面的第一点)
1、即每次发生变化时,要通过添加新的代码来增强现有类型的行为,而不是修改原有的代码。2、符合开放封闭原则的最好方式是提供一个固有的接口,然后让所有可能发生变化的类实现该接口,让固定的接口与相关对象进行交互。
里氏代替原则
子类必须替换掉它们的父类型
1、在软件开发过程中,子类替换父类后,程序的行为是一样的。2、只有当子类替换掉父类后软件的功能不受影响时,父类才能真正地被复用,而子类也可以在父类的基础上添加新的行为。
依赖倒置原则
细节应该依赖于抽象,而抽象不应该依赖于细节。(高层模块不应该依赖于底层模块,依赖关系应当是面向接口或抽象类,而不是具体实现类)依赖倒置的本质原则就是 :通过抽象(接口或抽象类)使各个类或模块实现彼此独立,互不影响,实现模块间的松耦合。
...
代码随想录学习记录
代码随想录学习记录数组双指针思想
二分查找这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。
704. 二分查找
35. 搜索插入位置
34. 在排序数组中查找元素的第一个和最后一个位置
69. x 的平方根
367. 有效的完全平方数
704. 二分查找
704. 二分查找 - 力扣(LeetCode)
12345678910111213141516171819202122class Solution { public int search(int[] nums, int target) { int left = 0, right = nums.length - 1; // 左闭右闭 while (left <= right) { int mid = left + ((right - left) ...
Leecode面试经典150题
Leecode面试经典150题数组 / 字符串88. 合并两个有序数组一开始个人写法
12345678910111213141516171819202122class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] ints = new int[m + n]; int t = 0, t1 = 0, t2 = 0; while (t1 < m && t2 < n) { if (nums1[t1] < nums2[t2]) { ints[t++] = nums1[t1++]; } else { ints[t++] = nums2[t2++]; } } while ( ...
剑指offer个人算法准备
剑指offer个人算法准备剑指Offer数据结构链表双指针
JZ6 从尾到头打印链表
JZ24 反转链表
JZ25 合并两个排序的链表
JZ52 两个链表的第一个公共结点
JZ23 链表中环的入口结点
JZ22 链表中倒数最后k个结点
JZ35 复杂链表的复制
JZ76 删除链表中重复的结点
JZ18 删除链表的节点
JZ6 从尾到头打印链表
翻转,浪费时间
123456789101112131415161718192021222324252627282930313233343536373839import java.util.*;/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util.ArrayList;public class Solution { ...