首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发之漫漫长途 XIII——Fragment最佳实践

该系列引用了《Android开发艺术探索》以及《深入理解Android 卷Ⅰ,Ⅱ,Ⅲ》中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!!...---- 前言 一篇文章中详细分析了Fragment相关知识,那么作为“小Activity”,Fragment能做什么呢,如何使用Fragment得到最佳实践呢。...--关于底层布局我这里使用了Github的开源项目--> <com.luseen.luseenbottomnavigation.BottomNavigation.BottomNavigationView...显示一个以前被隐藏过的Fragment hide(Fragment fragment) : 隐藏一个存在的Fragment 注:①Fragment被hide/show,仅仅是隐藏/显示Fragment的视图,不会有任何生命周期方法的调用...还有一些其他的方法这里就不一一列举了,有了上面所列出的方法,我们就能对Fragment有个很不错的优化了。

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

CSS基础-定位:static, relative, absolute, fixed

常见问题:通常不会直接出现问题,但容易忽视其重要性,尤其是在理解其他定位方式时。 避免策略:认识到static是基础,对比其他定位方式时,思考其不同之处。...常见问题: 误解:认为relative会使元素脱离文档流,实际它仍在原位占据空间。 过度使用:有时为了实现特定效果而滥用relative,实际可能更适用absolute或fixed。...避免策略: 确认是否真正需要相对偏移,而不是直接使用其他定位方式。 注意relative偏移不会影响周围元素布局,避免因此产生的布局混乱。...常见问题: 定位基准:忘记或误解绝对定位的参照物,导致元素出现在意料之外的位置。 覆盖问题:绝对定位元素容易覆盖其他内容,未适当调整z-index。...避免策略: 明确指定一个合适的包含块(父元素),并确保该父元素static外的定位。 考虑使用z-index来控制堆叠顺序,防止元素间的遮挡问题。

8210

听说谷歌Baba更新了 Material UI ...

来瓶哇哈哈,精神抖擞来一波~ 简单回顾 Material Design,是谷歌在14年的IO大会上提出的一种新的理念,也被称为新的设计语言(也被称为“原材料设计”),称它为设计语言不为过,但是实际,这仅仅是谷歌提倡的一种新的设计风格...使用也是很Easy,如下: 创建一个菜单资源 ,最多5个导航目标(BottomNavigationView不支持超过5个项目); 在内容下面放置BottomNavigationView; 将BottomNavigationView...的app:menu属性设置为菜单资源; 设置选择监听事件setOnNavigationItemSelectedListener(…)。...       android:orderInCategory="100"        android:title="他" /> Step 3: 运行一波,走起~ 当然,内置了一些其他样式...app:behavior_skipCollapsed:如果底部表单可隐藏,并且设置为true,则表单不会处于折叠状态。 听说,有人想来点赞赏? 最后,觉得不错,来波转发~比心~

3K20

深入理解及应用Position

没有定位,出现在正常文档流中 absolute 绝对定位,相对于position为absolute、relative、fixed的第一个父元素进行定位 relative 相对定位,相对于其正常位置进行定位...fixed 绝对定位,相对于浏览器窗口进行定位 Position本不复杂,混淆应用比较难理解,主要规则如下: 脱离文档流 static属性值之外其他值都会使元素脱离文档流(float也会导致元素脱离文档流...(50%) 此种情况下,无论父级元素的width和height是数值,还是百分比都不会造成对元素自身的影响,元素自身还是会以参考进行相应的计算。...他与z-index无解的关系 z-index的详细介绍见后面章节,此处只指出positionstatic值外都会创建层叠上下文(z-index不为auto的时候)。...1) z-index为数值时,会创建层叠上下文,子元素层叠顺序以此做为参考。 2) z-index为auto时,不会创建层叠上下文,层叠顺序与z-index:0一致。

59160

安卓Navigation系列——进阶篇

2.3.1' implementation 'androidx.navigation:navigation-ui-ktx:2.3.1' 很简单,包含三个页面,首页、发现、我的,点击底部可以切换页面,有了一篇的基础...是谷歌的一个实现底部导航的组件, app:menu属性为底部导航栏指定元素,新建一个bottom_nav_menu的menu资源文件 <?...bottomNavigationView, @NonNull final NavController navController) { bottomNavigationView.setOnNavigationItemSelectedListener...R.navigation.fix_nav_graph) bottom_nav_view.setupWithNavController(navController) } 运行程序,观察各fragment的生命周期,发现已经不会重新走生命周期了...总结 本篇在上篇的基础,结合BottomNavigationView实现了第一个底部导航切换的实例,然后介绍了这种方式引发的坑,进而通过源码分析了发生这种现象的原因,并给出了解决的思路。

2.9K30

iOS 11 更大的导航 (官方翻译版)

导航栏 导航栏出现在应用程序屏幕顶部的状态栏下方,并可以通过一系列分层屏幕进行导航。当显示新屏幕时,通常标有前一屏幕标题的后退按钮出现在栏的左侧。...在拆分视图中,导航栏可能会出现在拆分视图的单个窗格中。导航栏是半透明的,可能具有背景色调,并且可以配置为在屏幕键入屏幕时隐藏,发生手势或视图调整大小。 ? 考虑在显示全屏内容时暂时隐藏导航栏。...查看全屏照片时,照片会隐藏导航栏和其他界面元素。如果您实现这种行为,让用户使用简单的手势(如轻按)来还原导航栏。 有关开发人员的指导,请参阅UINavigationBar。...如果您在导航栏中使用分段控件,则该栏不应包含标题或分段控件之外的任何控件。 使用标准后退按钮。人们知道标准的后退按钮可以让他们通过信息层次来回溯步骤。...有关其他指导,请参阅细分控件。 ? image.png

2.9K30

CSS3动画详解

2.动画运行效果良好,甚至在低性能的系统。渲染引擎会使用跳帧或者其他技术以保证动画表现尽可能的流畅。而使用JavaScript实现的动画通常表现不佳(除非经过很好的设计)。...每一个关键帧都描述了动画元素在给定的时间点应该如何渲染。 因为动画的时间设置是通过CSS样式定义的,关键帧使用percentage来指定动画发生的时间点。...如果希望在不支持CSS动画的浏览器中使用自定义样式,应该将其写在这里;然而,在该例中,我们不需要动画效果以外的任何自定义样式。 关键帧是用@keyframes定义的。该例中,我们只使用了两个关键帧。...第一个出现在0%(此例中使用了别名from)处,此处元素的左边距为100%(即位于容器的右边界),宽为300%(即容器宽度的3倍),使得在动画的第一帧中标题位于浏览器窗口右边界之外。...第二帧出现在100%(此例中使用了别名to)。元素的左边距设为0%,宽设为100%,使得动画结束时元素与窗口左边界对齐。

1.1K20

【组合数学】错排问题 ( 递推公式 | 通项公式 | 推导过程 ) ★

分步计数原理 , 先统计 第一封信的排列方法 , 然后再讨论 其余信的排列方法数 ; ( 1 ) 第一步 : 首先找出一封信 a 出来 , 这封信不能排在其本身位置 , 只能放在其余 n-1 个位置..., 因此有 n-1 种排法 ; ( 2 ) 第二步 : 现在讨论其余 a 之外的其余信的位置的错排问题 ; 2 ....位置 , 此时 b 放在 a 位置 , 剩下 n-2 封信进行错排 , 方案数是 D(n-2) ( 2 ) 第二类 : 第二种情况是 b 没有去 a 的位置 , 那么 b 可能出现在...a 之外的任何位置 , b 有 n-2 个位置可以去 , 不能去 a,b 位置 , 其余所有元素都有 n-2 个位置可以去 ( a,b 位置不能去 ) , 这种情况下 相当于...a 之外的其它元素的错排问题 , 即 n-1 个元素的错排问题 , 方案数是 D(n-1) ; ★ ( 核心推导逻辑 ) ★ ( 3 ) 加法法则 : 汇总上述分类计数原理 , 使用 加法法则

77100

影响Scala语言设计的因素列表

事实,仅很少的Scala的特点是全新的;大多数都已经被以另外的形式用在其他语言中了。Scala的革新主要来源于它是如何构造并放在一起的。在这部分里,我们罗列了对Scala设计的主要影响。...语法之外,Scala还采用了Java的其他元素,诸如它的基本类型,类库和它的执行模式。 Scala也欠了其他语言的很多情。它的统一对象模型是由Smalltalk发起的,之后又被Ruby发扬光大。...他的通用嵌套的思想(几乎所有的Scala里的构造都能被嵌套进其他构造)也出现在Algol,Simula,和最近的Beta与gbeta中。它的方法调用和字段选择的统一访问原则来自于Eiffel。...C++是另一种能通过操作符重载和他的模板系统被改造和扩展的可伸展语言;与Scala相较,它是建在低层级,更面向系统的内核。...其他在OOP里集成了函数式编程的一些元素的包括Ruby,Smalltalk和Python。在Java平台上,Pizza,Nice和Multi-Java都用函数式思想扩展了类Java内核。

1.2K70

全栈数据工程师养成攻略:Python 基本语法

Python的特点 解释型语言,无需编译即可运行 提供了交互式命令行 基于对象的编程思想 跨平台和良好的兼容性,在Windows、Mac、Linux都可运行 简单好用而且功能强大 中文编码 很多同学在打开数据时会遇上乱码问题...应当注意,中文以及中文符号只能出现在字符串內,如果在下面第三行中使用了中文输入法的逗号 , ,Python将报错。 使用 + 可以拼接两个字符串。 使用 len() 可以得到字符串的长度。...注释 被注释的代码将不会运行,可以看作是写给自己和其他程序猿阅读的一些笔记和说明,提高代码可读性。 在Sublime中,选中需要注释的内容,按Ctrl+/即可完成注释。...运算符 运算符的作用是根据已有的变量生成新的变量,主要有以下几种: 算术运算符:+,-,*,/,%,即加、减、乘、、取余 比较运算符:==,!...除此之外,函数可以有一个或多个参数,参数之间以逗号分开,为函数的功能提供更多的灵活性。 补充学习 以上所介绍的,都是Python中最基础和最常用的内容,先掌握这些就可以跟上后续章节。

89480

Weex线上踩坑实录

再比如在tab一般是tablayout(bottomNavigationView)+fragment的布局,tab内容也需要使用weex来开发。...问题在于该方式需要去请求服务器获取js更新状态,万一网络差的时候就一直不会初始化容器,此时用户点击多次就会打开多个页面,非常的不友好,而且会给服务器带来无所谓的压力。...8.其他weex文档没有提及的要点 weex文档很不全面,导致实际运用到项目中的时候坑点多多,weex上线以后最初基本每个版本都要一些代码去填坑。...除此之外,我们需要赋予前端保存和修改cookie的能力,所以我们在客户端提供好了相关的set和get方法。...还有一个线上已知问题是部分三星手机上会crash问题,该问题只出现在三星手机上,目前weex官方没有得到解决。

96220

CopyOnWriteArrayList实现原理及源码分析

至于写操作,比如向容器中添加一个元素,则首先将当前容器复制一份,然后在新副本执行写操作,结束之后再将原容器的引用指向新容器。 ?...而CopyOnWriteArrayList由于其"读写分离"的思想,遍历和修改操作分别作用在不同的list容器,所以在使用迭代器进行遍历时候,也就不会抛出ConcurrentModificationException...而CopyOnWriteArrayList由于其实现策略的原因,写和读分别作用在新老不同容器,在写操作执行过程中,读不会阻塞但读取到的却是老容器的数据。...setArray(Arrays.copyOf(elements, len - 1)); else { //否则,将要删除元素之外其他元素拷贝到新副本中...return oldValue; } finally { //解锁 lock.unlock(); } } 删除操作同理,将要删除元素之外其他元素拷贝到新副本中

52020

利用BottomNavigationView实现底部标签栏

在Android Studio创建官方默认的首屏标签页面很方便,首先右击需要添加标签栏的模块,在弹出的右键菜单中依次选择“New”——“Activity”——“Bottom Navigation Activity...不过为了定制页面的详细内容,开发者仍需修改相关代码,譬如将标签文字从英文改成中文,将频道上方的描述说明从英文改成中文,给频道页面添加图像视图等其他控件等等,故而还得梳理标签栏框架的实现方式。...首先查看标签页面的布局文件,它的关键代码如下所示:     <com.google.android.material.bottomnavigation.BottomNavigationView        ...(底部导航视图),另一个是位于其占据剩余屏幕的碎片fragment。...textView.setText(s);             }         });         return root;     } 看来频道用到的碎片代码仍然在onCreateView方法中根据布局文件生成页面元素

2.2K30

React Native列表之FlatList开发实用教程

Vritualization 通过维护一个有限的渲染窗口(其中包含可见的元素),并将渲染窗口之外元素全部用合适的定长空白空间代替的方式,极大的改善了内存消耗以及在有大量数据情况下的使用性能。...它主要是通过虚拟元素也就是在渲染窗口之外元素将会被从组件结构卸载以达到回收内存目的。...在任何手势或动画或其他交互完成后,呈现在窗口边缘的Item不会被频繁的渲染,并且渲染优先级比较低。...注意事项 当某行滑出渲染区域之外后,其内部状态将不会保留。请确保你在行组件以外的地方保留了数据。...不会出现在第一行之前和最后一行之后。 ListFooterComponent?: ?ReactClass 通过它设置尾部组件 ListHeaderComponent?: ?

6.4K00

Excel实战技巧65: 制作漂亮的用户窗体按钮——当鼠标移动到按钮时高亮显示

在很多场合,我们都能看到这样的效果,当鼠标移动到某个元素上面时,该元素会变成另外一种颜色,达到强调的效果。...由于图像是静态的,在运行时不能更改颜色,因此每个按钮都由两个图像组成,一个图像代表鼠标悬浮在按钮的状态,另一个图像代表鼠标未悬浮在按钮的状态。...同时,可以看到图像出现在控件中,如下图4所示。 ?...但是,如果用户将鼠标放置在这两个按钮之外其他地方时,我们不希望这两个按钮显示绿色,因此要使用用户窗体的MouseMove事件: Private SubUserForm_MouseMove(ByVal...Me.CancelButtoninactive.Visible = True Me.OKButtonInactive.Visible = True End Sub 这样,鼠标在用户窗体中按钮之外移动时

8K20
领券