Android控件-ViewPager
一. 继承1234java.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳androidx.viewpager.widget.ViewPager
ViewPager 可以让用户左右切换当前的 View。它之前是android.support.v4里面的类,现在归为到了androidx.viewpager.widget里面。
ViewPager 需要一个PagerAdapter适配器来提供数据。
ViewPager 经常和 Fragment 一起使用,并且提供了专门的 FragmentAdapter 和 FragmentStateAdapter 适配器。
二. PagerAdapter1. 方法讲解123456789101112131415161718192021222324252627viewPager.setAdapter(new PagerAdapter() { //获取要滑动的View的数量 //这个函数在ViewPager对象创建后自动执行 且只会执行一次 @Ove ...
Android随笔-Android中的各种bar
一. 各种 bar
1. 状态栏(satus bar)指手机最顶上,显示中国移动、安全卫士、电量、网速等等,在手机的顶部。下拉就会出现通知栏。
2. 标题栏(action bar | toolbar)是指一个APP程序最上部的titleBar,从名字就知道它显然就是一个应用程序一个页面的标题了,例如打开QQ消息主页,最上面显示消息那一栏就是标题栏。
3. 导航栏(navigation bar)是手机最下面的返回,HOME,菜单(menu/recent)三个键。
4. 系统栏(system bar)状态栏+导航栏
5. 应用栏(app bar)应用栏也称操作栏,一般是把标题栏(Toolbar) 设置为应用栏。
参考文章Android 状态栏, 标题栏, 导航栏,系统栏,应用栏的区别和解释
Android ActionBar自定义
Android底部导航栏,三种风格和实现
Android控件-Toast
一. 继承关系12java.lang.Object ↳android.widget.Toast
Toast 是一个视图,其中包含给用户的简单提示。当 Toast 显示给用户时,在应用程序上显示为浮动视图,它永远不会受到关注,用户可能正在输入其内容。Toast 是想尽可能不打扰用户,同时仍向用户显示你希望他们看到的信息。
两个示例是音量控制以及一条简短的信息提示你的设置已经保存。
二. Toast 的一些方法123456789101112131415161718192021222324252627//构造一个空的ToastToast(Context context);//返回一个仅包含带有资源文本(R.string....)的文本视图的标准吐司。static Toast makeText(Context context, int resId, int duration);//返回一个仅包含文本视图的标准吐司。static Toast makeText(Context context, CharSequence text, int duration)//设置Toast中的内容void ...
Android控件-TabLayout
一. 继承关系123456java.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.widget.FrameLayout ↳android.widget.HorizontalScrollView ↳com.google.android.material.tabs.TabLayout
Tablayout继承自HorizontalScrollView,用作页面切换指示器,因使用简便功能强大而广泛使用在App中。
需要注意一点,AndroidStuid默认是没有添加对 TableLayout的依赖的。
添加的方式有两种:
点击下载的按钮,TabLayout,系统就会自动帮你添加依赖。
主动添加依赖,不推荐。
二. TabLayout的Xml属性1234567891011121314151617181920212223242526272829303132333435363738394041424344454647app:tabIndicatorColo ...
算法题解-213. 打家劫舍 II
1.题目描述213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例 1:
123输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。
示例 2:
1234输入: [1,2,3,1]输出: 4解释: 你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。
2.代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 ...
算法题解-面试题63. 股票的最大利润
1.题目描述面试题63. 股票的最大利润
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
示例 1:
1234输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
示例 2:
123输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
限制:
10 <= 数组长度 <= 10^5
2.代码实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566package swu.xl.algorithm.code_04_07.experime ...
算法题解-45. 跳跃游戏 II
1.题目描述45. 跳跃游戏 II
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
示例:
1234输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
说明:
假设你总是可以到达数组的最后一个位置。
2.代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package swu.xl.algorithm.code_04_07.experiment_4;public class Solution { /** * leetcode 跳跃游戏 II * @param nums * @return */ public static int jump(i ...
Android布局-总结
1. LinearLayout线性布局: 指子控件以水平或垂直方式排列。
参考:LinearLayout
2. RelativeLayout相对布局: 指子控件以控件之间的相对位置或子控件相对于父容器的位置排列。
参考:RelativeLayout
3. FrameLayout不常用
帧布局: 指所有子控件均放在左上角且后面元素直接覆盖在前面元素之上。
参考:FrameLayout
4. AbsoluteLayout不常用
绝对布局: 指子控件通过绝对定位x,y位置来决定其位置摆放。
参考:AbsoluteLayout
5. TableLayout不常用
表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象。
参考:TableLayout
6. GridLayout不常用
网格布局:和表格布局是有点类似的,但比表格布局的好,功能也是很强大。
参考:GridLayout
7. ConstraintLayout约束布局:布局的大杀器,主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整View。
参考:ConstraintLayout
8. 布局技巧布 ...