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

Android实战技巧:ViewStub应用

大家好,又见面了,是你们朋友全栈君。 在开发应用程序时候,经常会遇到这样情况,会在运行时动态根据条件来决定显示哪个View或某个布局。...那么最通常想法就是把可能用到View都写在上面,先把它们见性都设为View.GONE,然后在代码中动态更改它见性。这样做法优点是逻辑简单而且控制起来比较灵活。...所以当需要在运行时不止一次显示和隐藏某个布局,那么ViewStub是做不到。这时就只能使用View见性来控制了。 2....所以,如果想要控制某个View(如Button或TextView)显示与隐藏,或者想要在运行时不断显示与隐藏某个布局或View,只能使用View见性来控制。...某些布局属性要加在ViewStub而不是实际布局上面,才会起作用,比如上面用android:layout_margin*系列属性,如果加在TextView上面,则不会起作用,需要放在它ViewStub

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

程序员专属导航站已上线,群里LSP给我整不会了...

,一下给我整不会了........,同时基础数据也不受个性化影响,也就意味着,页面的基础数据,不会随时发生变化;如上图流程,完全没有必要在每个用户请求时通过Lua去访问数据库,只需要在第一个用户使用时候查询并将数据缓存在内存中...,能轻松帮你处理图片: PIXLR https://pixlr.com/ 另一款免费在线PS工具,和上面的创贴功能差不多;为什么有创贴了还要用这款工具,主要是因为部分logo在处理时候,创贴提示不支持...,每次能拖拽20张图片进行无损压缩;由于本次没有太多图片,所有也没有去整很专业插件,手动操作了一下;先前有通过PS CC + Tinypng插件,来实现对整个文件夹图片进行自动压缩,由于换电脑,相应环境丢失...,也确实太难办到了,但是我们完全可以利用一些工具来达到自己效果;比如本文中涉及到P图,如果让去学习专业PS工具,那这个过程就太漫长了,但是并不需要专业水准,创贴、PIXLR就能完全满足需求

1.4K20

viewstub 详细用法_pageinfo用法

大家好,又见面了,是你们朋友全栈君。 在开发应用程序时候,经常会遇到这样情况,会在运行时动态根据条件来决定显示哪个View或某个布局。...那么最通常想法就是把可能用到View都写在上面,先把它们见性都设为View.GONE,然后在代码中动态更改它见性。这样做法优点是逻辑简单而且控制起来比较灵活。...所以当需要在运行时不止一次显示和隐藏某个布局,那么ViewStub是做不到。这时就只能使用View见性来控制了。 2....所以,如果想要控制某个View(如Button或TextView)显示与隐藏,或者想要在运行时不断显示与隐藏某个布局或View,只能使用View见性来控制。...某些布局属性要加在ViewStub而不是实际布局上面,才会起作用,比如上面用android:layout_margin*系列属性,如果加在 TextView上面,则不会起作用,需要放在它ViewStub

3.5K40

android 之ViewStub

那么最通常想法就是把可能用到View都写在上面,先把它们见性都设为View.GONE,然后在代码中动态更改它见性。这样做法优点是逻辑简单而且控制起来比较灵活。...按句话说,某个被ViewStub指定布局被Inflate后,就不会够再通过ViewStub来控制它了。          2....所以当需要在运行时不止一次显示和隐藏某个布局,那么ViewStub是做不到。这时就只能使用View见性来控制了。          2....所以,如果想要控制某个View(如Button或TextView)显示与隐藏,或者想要在运行时不断显示与隐藏某个布局或View,只能使用View见性来控制。...某些布局属性要加在ViewStub而不是实际布局上面,才会起作用,比如上面用android:layout_margin*系列属性,如果加在TextView上面,则不会起作用,需要放在它ViewStub

71390

Android在layout xml中使用ViewStub完成动态加载问题

那么最通常想法就是把可能用到View都写在上面,先把它们见性都设为View.GONE,然后在代码中动态更改它见性。这样做法优点是逻辑简单而且控制起来比较灵活。...按句话说,某个被ViewStub指定布局被Inflate后,就不会够再通过ViewStub来控制它了。 2....所以当需要在运行时不止一次显示和隐藏某个布局,那么ViewStub是做不到。这时就只能使用View见性来控制了。 2. 想要控制显示与隐藏是一个布局文件,而非某个View。...所以,如果想要控制某个View(如Button或TextView)显示与隐藏,或者想要在运行时不断显示与隐藏某个布局或View,只能使用View见性来控制。...某些布局属性要加在ViewStub而不是实际布局上面,才会起作用,比如上面用android:layout_margin*系列属性,如果加在TextView上面,则不会起作用,需要放在它ViewStub

1.7K31

Android布局优化三剑客:include+merge+ViewStub

说明我们设置layout和id都是成功。不过你可能会对id这个属性有疑问:id可以直接在TextView中设置啊,为什么重写它呢?...1.2 重写根布局布局属性 除了id之外,我们还可以重写宽高、边距和可见性(visibility)这些布局属性。...打个比方,它就像是布局或者控件搬运工,把“货物”搬到主布局之后就会功成身退,不会占用任何空间,因此也就不会增加布局层级了。这正如它名字一样,只起“合并”作用。...android:id="@+id/tv_merge1" android:text="是merge中TextView1" android:background...这样设计其实也符合ViewStub特性,即填充布局之后就自我销毁了,给其设置可见性是没有意义

3K51

.NET 基金会项目介绍-MvvmCross

MvvmCross 是属于 .Net 基金会一个项目,本文将简要介绍该项目相关信息。 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。...MvvmCross MvvmCross 是一个跨平台 MVVM 框架,其使得开发者能够构建简洁像素友好原生UI。...MvvmCross 专门为 Xamarin 和移动设备生态设计。...不论如何,业务复杂度不会随着技术框架选择而减低,它只会从一个地方转移到另外地方。 开发者可以尝试并使用此框架减轻初期多重开发困难,而随着团队和业务演变,变化永远是不会停止。...Azure WebJobs SDK - 【SDK】 BenchmarkDotNet - 【基准测试框架】 Cake - 【本地自动化框架】 Chemistry Add-in for Word - 【Word插件

1.5K30

kotlin-android-extensions插件也被废弃了?扶起来

kotlin-android-extensions插件可能算得上是最喜欢一个Kotlin在Android上特性了。...当时还说,不可能呀,这个插件这么好用,而且Kotlin也是Google未来主推技术,可能只是Android Studio 4.1bug吧。 然而,没过多久就被打脸了。...对于Google这种技术迭代频率是有点生气,如果kotlin-android-extensions插件是Google主推技术,理应拥有更长生命周期,不然的话就不该作为默认插件 集成到Android...虽说Google技术迭代频率常常会让我们直呼学不动了,但是Google也绝对不会无缘无故去废弃一个之前主推技术,说明kotlin-android-extensions插件肯定还是存在问题。...最重要是,这些内容对于绝大部分开发者来说都是黑盒,使用kotlin-android-extensions插件的人可能并不知道这些隐藏“坑”,这个问题在稍后介绍RecyclerView Adapter

2.7K31

详细介绍安卓布局性能优化之(include 、merge、ViewStub)

layout布局不能使用merge标签 ViewStub 标签 我们在做安卓项目的时候,经常会有一个使用场景:需要在运行时根据数据动态决定显示或隐藏某个View和布局。...上述场景,我们通常解决方案就是:就是把可能用到View先写在布局里,再初始化其可见性都设为View.GONE,然后在代码中根据数据动态更改它见性。...ViewStub 标签最大优点是当你需要时才会加载,使用它并不会影响UI初始化时性能.各种不常用布局像进度条、显示错误消息等可以使用ViewStub标签,以减少内存使用量,加快渲染速度.ViewStub...先来看看布局,一个是主布局,里面只定义二个ViewStub,一个用来控制TextView一个用来控制ImageView,另外就是一个是为显示文字TextView布局,一个是为ImageView而做布局...,加一个布局嵌套又会损耗性能 鉴于这种情况,我们可以使用space,使用方式和View一样,不过主要用来占位置,不会有任何显示效果

1.4K10

要再见了吗,Kotlin Android Extension

Parcelize 插件。...说实话,直接废弃,还是有些意外。毕竟这个插件在早期为 Kotlin 攻城略地快速吸引 Android 开发者立下了汗马功劳,多年来虽然几乎没有功能更新,但直到现在仍然能够胜任绝大多数场景。...这个问题从现有的 KAE 思路上来看,确实不太好解决,不过从多年实践来看,这也许都算不上是一个问题,至少用了快 5 年 KAE,只有偶尔几次写错 id 以外,多数情况下不会出现此类问题。...看到在废弃 KAE 讨论中,大家还是觉得废弃有些难以理解,毕竟之前你也没怎么管这个插件啊,这么多年了除了加了个 Parcelize 功能以外,也没怎么着啊。...绑定一个插件

1.6K40

【Android】ButterKnife 8.x详解

想说,确实不只是有findViewById()这个功能。不得不承认,在这之前,对ButterKnife使用,也只停留在绑定视图和点击事件上。???...优势 强大View绑定和Click事件等处理功能,简化代码,提升开发效率 运行时不会影响APP效率,使用配置方便 代码清晰,可读性强 申明 可能有些人对ButterKnife有一些误解,认为ButterKnife...该函数相当于将在这个列表中每一个元素上进行调用.利用ButterKnifeAction或Setter接口来执行一些简单操作 例:隐藏指定View。...具体用法就不写了......厉害了 安装插件 安装插件 使用 然后只要右键布局id上,选择Generate,点击Generate Butterknife Injections,该插件会从对应布局中查找有

1.4K100

再学一次ConstraintLayout 一些新特性

比如下面的姓名和联系方式,右侧EditText是肯定需要左侧对齐,左侧2个TextView可以看成一个整体,Barrier会在最宽那个TextView右边,然后右侧EditText在Barrier...比如在上面的栗子中,Barrier 应该在 姓名TextView 右侧,因此这里取值right(也end,可随意使用.这个right和end问题,其实在RelativeLayout中就有体现,在RelativeLayout...可以把View放到里面,然后Group可以同时控制这些view隐藏....使用多个 Group 时,尽量不要将某个View重复放在 多个 Group 中,实测可能会导致隐藏失效....所以我们可以将Guideline,Barrier,Group视为虚拟试图,因为它们几乎不会带来多绘制性能损耗.是这样理解.

1.6K40

Android开发必备知识:为什么说Kotlin值得一试

1.2 第一个Kotlin程序 Kotlin 开发当然使用 JetBrain 系列 IDE,实际上 intelliJ idea 15 发布时就已经内置了 Kotlin 插件,更早版本则需要到插件仓库中下载安装...这表示编译器不再强制 savedInstanceState 是否 null,开发者在覆写时可以自己决定是否 null。...,但一旦类及其成员是 public ,那么调用方也就可以看到它们了;而 protected 或者 default 这样见性对于子包却是不可见。...这活干不了啦。。 不过用 Kotlin Android 扩展插件,我们就可以这样: 先上布局文件: main.xml ? 在 Activity 中: ?....* 导入这一句之后,我们就可以直接在代码中使用 start、textView,他们分别对应于 main.xml 中 id 为 start 按钮和 id 为 textView TextView

1.1K90

深入Android Runtime: 指令优化与Java方法调用

作者简介:dc, 天天P图AND工程师 ---- 做一个小试验 先做一个小试验: 在apkactivity中放一个Button和一个TextView,点击Button让结果显示在TextView上。...apk代码如下: public class MainActivity extends AppCompatActivity { Button button; TextView textView...由于vtable索引变化,就出现了明明是调用Test方法,结果跑是abc方法奇特现象。...如果我们进行verify-none模式编译(不进行quicken优化,或者其他能编译成机器码模式),让其以解释模式运行,就不会有问题。...总结 在进行apk热修复、插件化、动态加载时候,会经常多个jar/dex包含相同class,如果class结构因为需要升级出现了变化,会隐藏一些很难解释坑在里面,务必谨慎。

2.1K70

hello Kotlin

1.2 第一个Kotlin程序 Kotlin 开发当然使用 JetBrain 系列 IDE,实际上 intelliJ idea 15 发布时就已经内置了 Kotlin 插件,更早版本则需要到插件仓库中下载安装...这表示编译器不再强制 savedInstanceState 是否 null,开发者在覆写时可以自己决定是否 null。...,但一旦类及其成员是 public ,那么调用方也就可以看到它们了;而 protected 或者 default 这样见性对于子包却是不可见。...这活干不了啦。。 不过用 Kotlin Android 扩展插件,我们就可以这样: 先上布局文件: main.xml ? 在 Activity 中: ?....* 导入这一句之后,我们就可以直接在代码中使用 start、textView,他们分别对应于 main.xml 中 id 为 start 按钮和 id 为 textView TextView

88750

.Net 跨平台移植类库正在进行

此外,请你一定要先看看我在Xamarin Evolve会议中演讲(c#如何拯救了婚姻)。现在将要谈谈移植类库。...它使用移植类库,用于共享平台之间通用代码,用到了从Azure到主机服务,还用了非常痴迷MVVMCross MVVM framework。...由于参考了Xamarin,MVVmCross,以及移植类库,开发人员声明到,“考虑到The Lions app只给了很短时间(从第一行代码开发到第一个版本发布,只用了不到三个月时间),没有通用内核我们根本不可能交付一个跨所有平台本地化丰富程序...另一个用了MVVMCross跨平台应用是Aviva Drive。这是一个保险公司app,你可以用来跟踪你驾驶习惯,从而很有希望在保险费上获取这款。...个人对此表示赞同。能够复用已存在代码,创建移植类库,还能写在64k或者64gigs中跑apps,这使得.NET成为一个非常有趣开发平台工具。

1.7K90

笔记74 | 学习掌握ConstraintLayout基本属性

In that case, you can add one of the corresponding attribute 英文一直是弱项,是这么理解,1.1.0 版本之前是没有这个功能,说是控件宽设置为...app:layout_constrainedWidth=”true” 会导致渲染变慢,变慢时长忽略不计。 b、例子 产品部美女提出了这样一个需求,看图: ?...4、goneMargin(隐藏边距) 当约束目标的可见性为 View.GONE时,还可以通过以下属性设置不同边距值: layout_goneMarginStart layout_goneMarginEnd...它们是虚拟对象,并不会占用实际空间,但可以帮助我们更好更精细地控制布局。综上需求变化我们可以相对于父控件任意改变控件大小,控件位置,从而能够更好适配各大屏幕。...7、Group Group用于控制多个控件见性。 e.g: ? 若 android:visibility="gone" 那么 A,B 控件都会隐藏

1.2K50

PopupWindow使用方法详解

tv_popup_text" android:layout_width="wrap_content" android:layout_height="80dp" android:text="就是弹窗...(设置为不可触摸,那弹出框内任何控件都不能进行任何点击等等类似操作) mPopupWindow.setTouchable( true); // 设置非PopupWindow区域是否触摸 // 1.若设置...PopupWindow获得焦点和非PopupWindow区域触摸,但实际上非PopupWindow区域控件并不能响应点击事件等等 // 2.若设置PopupWindow不可获得焦点,则不管非PopupWindow...区域时能隐藏PopupWindow,而点击返回键并不能隐藏窗口, // 此时通过按钮只能控制窗口弹出,并不能控制消失,消失只能通过点击其他非PopupWindow区域 mPopupWindow.setOutsideTouchable...( new BitmapDrawable( getResources(), (Bitmap) null)); // 设置PopupWindow显示和隐藏动画 mPopupWindow.setAnimationStyle

66131
领券