这里简单的整理了一部分,按照个人使用频率排序: ConstraintLayout: 约束布局 LinearLayout: 线性布局 RelativeLayout: 相对定位布局 FrameLayout:...layout_constraintXXX 相对定位是在 ConstraintLayout 中创建布局基本构建块之一。...这些约束允许一个 View 基于某个 View 进行定位,同样我们可以在水平方向以及垂直方向进行约束 View: 水平轴: 左,右,起点和终点 垂直轴: 顶部,底部和文本基线 如下,实现将 B 按钮定位在...内部子 View 宽度/高度为 0dp,则同等于 match_parent。...benefits of ConstraintLayout LinearLayout 相对布局 FrameLayout GridLayout 表格 The curious BlinkLayout 每日一问
, wrapContent) visibility = View.GONE } 效果就是,在FrameLayout里面添加了一个TextView,Textview拥有着DSL闭包里面的配置。...= constraintLayout() {} inline fun Context.constraintLayout(init: (@AnkoViewDslMarker _ConstraintLayout...比如说我已经用XML写好了页面的布局,然后我们需要根据代码在其中一个FrameLayout中动态添加一些东西。我们就可以拿到这个FrameLayout的引用,然后就可以用anko大展拳脚了。...val frameLayout = findViewByIdFrameLayout>(R.id.fl_container) val view = frameLayout.textView {...还想说的 Anko DSL让人望而却步的部分就是它不能支持即时预览,所以这个局限性也就导致Anko无法构建大型复杂的页面。
一、报错信息 在 ConstraintLayout 约束布局中 , 引入了自定义 View 后 , 整个 Design 图形化操作界面没了 , 报错信息如下 : java.lang.IllegalStateException...(FrameLayout.java:194) at android.view.View.measure_Original(View.java:25773) at android.view.View_Delegate.measure...(FrameLayout.java:194) at android.view.View.measure_Original(View.java:25773) at android.view.View_Delegate.measure...ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) 二、解决方案 ---- 出现上述报错问题 , 是由于在...在本案例中 , 源码如下 : import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater
需要注意的是, inflate()的第三个参数需要设置为false,因为在 Fragment内部实现中,会把该布局添加到 container中,如果设为true,那么就会重复做两次添加,则会抛如下异常:...因为 Fragment不能独立存在,需要依附于 Activity。把 Fragment添加到 Activity中的方式分为两种: 静态添加:通过 xml的方式添加,缺点是一旦添加就不能在运行时删除。...,因此在 Activity的布局文件中加入 FrameLayout。...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk...在一次事务中,可以做多个操作,比如同时做 add().remove().replace()。 commit()操作是异步的,内部通过 mManager.enqueueAction()加入处理队列。
耗时 单帧 ≤8ms Systrace 过度绘制区域占比 ≤25% 红色区域 GPU Overdraw 调试工具 通过以上方法,结合工具定位瓶颈...使用 Guideline 定位通过虚拟参考线替代多余的布局容器:constraintlayout.widget.ConstraintLayout> constraintlayout.widget.Guideline...使用 merge 标签:在根布局为 ConstraintLayout 时,用 消除冗余父容器。延迟加载:对非立即显示的视图使用 ViewStub。...六、总结ConstraintLayout 通过约束关系和辅助组件,能够在单层布局中实现复杂 UI,是减少嵌套的首选方案。关键在于:熟练使用 chains、Guideline、Barrier 等特性。...在简单布局中,避免过度使用 ConstraintLayout(如单按钮场景可直接用 FrameLayout)。
对应关系 View Jetpack Compose FrameLayout Box& Modifier RelativeLayout Box & Modifier LinearLayout Row, Column...ConstraintLayout ConstraintLayout 移植到了 Compose 中 RecyclerView LazyColumn or LazyRow ScrollView Modifier.verticalScroll...默认 默认不能滚动,会挤压最后的组件。...Surface 内部放置其他组件 // 这里放置了一个文本组件作为示例 Text(text = "Hello, Surface!"...Card 组件通常用于显示单个元素或组件,并为其添加阴影效果以使其在界面上突出显示。
示例一: RadioButton+ Fragment 在之前介绍的你不能错过的RadioButton实践一文中,我们详细介绍了 RadioButton的使用,在示例:实现微信底部Tab效果中,只是实现了底部导航的效果切换...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk...FragmentStatePagerAdapter其内部不断重建和销毁,适合处理有很多页,并且数据动态性较大、占用内存较多的情况。...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk...赶快在项目中练习使用吧! 如果你觉得本篇对你有所帮助,欢迎转载分享,标志出处即可,谢谢支持。
> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res...上面已经加载了 UI,但并不能一些交互和行为,通常情况下,需要将 Activity 的生命周期透传给 FlutterFragment: class MainActivity : AppCompatActivity...但是,有的时候需要其透明,显示其底下的 UI,因此,Flutter在 FlutterFragment 中支持设置为透明。...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res...layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"/> FrameLayout
/> RelativeLayout: 是一个布局容器,内部的子元素可以相对于父容器或者彼此进行定位。 TextView: 是一个显示文本的视图元素。...Intent 在 Android 中,Intent 是一种用于在组件之间传递消息的对象。它主要用于启动组件(如启动 Activity、启动 Service)或者在组件之间传递数据。...-- 子元素放在这里 --> RelativeLayout: 相对布局,可以根据其他元素的位置定位子元素。...constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android...-- 子元素放在这里 --> constraintlayout.widget.ConstraintLayout> FrameLayout: 帧布局,所有的子元素都会叠加在左上角,
在之前的一篇文章中,介绍了在原生项目中引入Flutter。 在这个基础上,记录一下在Flutter中引入原生View。...> ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android...parent" app:layout_constraintTop_toBottomOf="@id/content"/> ConstraintLayout...(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT) content.addView...第一步 继承PlatformViewFactory在它的create()方法中返回一个在Flutter中要用的原生View。
Android 布局文件的根元素是一个视图容器,可以是一个 LinearLayout、RelativeLayout、FrameLayout 或其他类型的视图容器。...以前的布局文件一般使用 LinearLayout、RelativeLayout、FrameLayout 等视图容器,但这些容器布局比较麻烦,对布局约束的描述不太直观,且相对复杂。...ConstraintLayout 包含了 LinearLayout、RelativeLayout 和 FrameLayout 三种视图容器的功能,并提供了更直观、更灵活、更简便的布局方式。...使用 ConstraintLayout 的示例代码如下: constraintlayout.widget.ConstraintLayout xmlns:android="http...> 在使用 ConstraintLayout 时,需要注意适配不同的设备尺寸和分辨率,同时也要考虑到应用程序的性能和交互体验。
> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/...-> c、启用菜单选项 重写 Activity 的 onCreateOptionsMenu 方法 , 加载资源文件中的菜单 , 此时 只加载菜单 , 此时不能跳转 , 需要重写 onOptionsItemSelected...: Boolean { super.onCreateOptionsMenu(menu) // 加载资源文件中的菜单 // 只加载菜单 , 此时不能跳转 ,...: Boolean { super.onCreateOptionsMenu(menu) // 加载资源文件中的菜单 // 只加载菜单 , 此时不能跳转 ,...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk
结束之后在.android/Flutter/build/outputs/aar/目录下会生成flutter-debug.aar 第三步:设置JDK版本 在app的build.gradle文件中加入: compileOptions...> ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android...layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> FrameLayout...content" android:layout_width="match_parent" android:layout_height="match_parent">FrameLayout...> ConstraintLayout> 部分资料图:
零、前言 [1].CardView extends FrameLayout [2].一个带圆角和阴影的FrameLayout,FrameLayout怎么用,它就怎么用 [3].依赖implementation...内容与边距的间隔起始 app:paddingEnd 内容与边距的间隔终止 app:cardUseCompatPadding 设置内边距,在API21...及以上版本和之前的版本仍旧具有一样的计算方式 app:cardPreventConrerOverlap 在API20及以下版本中添加内边距,这个属性为了防止内容和边角的重叠 注意:CardView...> ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/..."/> ConstraintLayout
Fragment是依赖于Activity的,不能独立存在的。 Android运行在各种各样的设备中,有小屏幕的手机,还有大屏幕的平板,电视等。...同样的界面在手机上显示可能很好看,在大屏幕的平板上就未必了,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。...一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity的影响。本质上会产生一个FrameLayout,它加载的布局为其子布局。...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk...wrap_content" android:layout_height="wrap_content" android:text="TextView" /> constraintlayout.widget.ConstraintLayout
前言 小伙伴们,在上文中我们介绍了Android帧布局FrameLayout,本文我们继续盘点介绍Android开发中另一个常见的布局,约束布局ConstraintLayout。...而ConstraintLayout允许将多个视图放置在单个容器内,减少了嵌套和层次深度,提高了布局效率和可读性。...二 ConstraintLayout使用方法 添加依赖:首先,在项目的build.gradle文件中,确保已经添加了ConstraintLayout库的依赖。...:' 布局文件定义:在布局文件(通常是XML文件)中,以ConstraintLayout作为根容器来定义布局。...-- 添加视图元素 --> constraintlayout.widget.ConstraintLayout> 添加视图元素:在 ConstraintLayout 内部添加需要布局的视图元素
image 布局的转换 目前支持RelativeLayout,FrameLayout,LinearLayout (Nested),ConstraintLayout,TableLayout和ScrollView...bottom, center, center_horizontal, center_vertical, right+center_vertical, bottom+center_horizontal ConstraintLayout...image FrameLayout的屏幕截图: ? image ? image ConstraintLayout的屏幕截图(这个也做了移植,确实经惊艳到我了): ? image ?...针对.9.png图片文件:在catalog中为asset添加了切片(slicing )信息。 Vector图片形式的xml被转换成Storyboard上能够使用的.pdf文件。...---- 外部库Glide的转换 支持的功能: 从本地res文件夹加载drawable 从URL加载图片 将图片加载到UIImageView 在下载过程中提供占位符图片 在图片之间应用过渡:CrossFade
工具 Memory Analyzer工具 LeakCanary工具 Android Lint 工具 (1.1)避免内存泄漏 单例模式引用Activity类型Context Activity中持有非静态内部类...Thread.setDefaultUncaughtExceptionHandler() (2.2)提高代码质量、逻辑严谨性、代码审核 2、流畅度 # 公众号:AllTests软件测试 (1)布局优化 使用轻量级UI组件(LinearLayout、FrameLayout...),LinearLayout避免使用权重属性,比较耗费性能 通过RelativeLayout和ConstraintLayout减少复杂视图层级、布局扁平化,ConstraintLayout相对于RelativeLayout
常见容器视图示例: 类名称 description LinearLayout 在一行或一列里显示视图。 RelativeLayout 相对某个视图放置其他视图。...FrameLayout ViewGroup 包含一个子视图。 ScrollView 一种 FrameLayout,旨在让用户能够在视图中滚动查看内容。...ConstraintLayout 这是更新的 viewgroup;可以灵活地放置视图。在这节课的稍后阶段,我们将学习 ConstraintLayout。...这些 XML 文件存储在标记为 layouts 的 res 文件夹内。...、Action、Category 和 Data 可以定位一个或多个窗口。
在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记。 什么是页面加载管理类呢?...我们一般在写网络请求的时候,如果不涉及什么MVP,或者别的,就一个简单网络请求,然后再成功的结果里刷新View,请求过程中总不能白屏吧,所以有些人可能会让转一个圈,或者显示加载中的布局,然后等成功后再隐藏掉...总不能每个状态的判断一下吧。再者说这样也不利于你解耦。 出于上面的需求,我们用下面的demo,来解决问题,先用一张图来看效果吧。...> ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android...> 加载成功 这个布局就不用写了,就是你自己要显示的布局 那么具体在代码中如何使用呢,我们看下面这个Demo。
领取专属 10元无门槛券
手把手带您无忧上云