首页
学习
活动
专区
圈层
工具
发布

【建议收藏】17个XML布局小技巧

GuideLine是ConstraintLayout布局的辅助对象,仅用于布局定位使用,它被标记了View.GONE,并不会显示在设备上。...上面的content_scrolling.xml: 实际上布局只有一个TextView,但是在预览视图中还可以看到FloatingActionButton,这就是使用了tools:showIn属性...,当子layout嵌入在父layout中时,只需要使用tools:showIn在子layout的根布局指定父layout,就可以实时预览在父layout中的效果了。...条件视图的场景比如,当我们需要根据条件判断来显示哪个view的时候,一般都会把每个场景的view都写在页面中,然后根据条件分别设置view的visibility,这样做的缺点是,即使view是View.GONE...使用场景除了上面的示例外,还可以在点赞、收藏这类场景的显示上使用。 android:divider LinearLayout也是我们使用非常高频的一个Layout,下面介绍两个个少为人知的属性。

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

    Android入门之旅

    android:src="@drawable/cake" //使用@符号表示在Android APP里面引用一个资源 //drawable是一种资源类型,能将图形显示在屏幕上...比如说下面这个图例: 图例首先是包含两个子视图一个竖直的线性布局(vertical LinearLayout) 第一个子视图是一个包含3个子视图的水平线性布局(horizontal LinearLayout...注:如果ID为为 R.id.order_summary_text_view 的View是TextView的话,它是无法使用TextView类的方法的,因为findViewById创建的是一个View类型的对象...); 向 Android 日志中写消息 注:这个是抄的Udacity上面的 本质上,你是在代码中写出类似于以下内容的 Java 语句: Log.i("eatCookie","Oh my God, You...为了解决这个问题,有以下的思路: 我们不一次显示所有的啊东西,只是显示屏幕上需要的东西。就是根据屏幕,创建所需要的视图。如果屏幕不需要,我们就不显示,把它抛弃了;如果需要就建立一个。

    50700

    速读原著-Android应用开发入门教程(布局(Layout))

    8.4 布局(Layout) 布局(Layout)是各个控件在屏幕上的位置关系,视图组的几个扩展类与布局相关。...在 Android 中布局通常有以下几种不同的情况: FrameLayout(框架布局):系统默认的在屏幕上就有空白区显示它; LinearLayout(线性布局):让所有的子视图都成为单一的方向,即垂直的或者水平的...这两个值既可以在视图组中使用,也可以在普通视图中使用,如果在视图中使用"wrap_content",表示包裹其中的内容,例如按钮需要包裹上面的文字。...8.4.2.线性布局(LinearLayout) 线性布局是 Android 中最常使用的布局,示例程序位于 Views=>Layout=>LinearLayout 中。...-- ……省略部分内容 --> TableLayout 中包含了若干个 TableRow,每个 TableRow 中又包含了若干个 TextView,这样在 UI 上实际上就形成了一个隐性的表格

    1K30

    Android可穿戴设备世界之旅

    时,从手表上得到答案真是太好了,有点像《钢铁侠》电影中的J.A.R.V.I.S.。 通知:与手表保持联系,一目了然地查看消息。 天气更新:不时获取更新的天气报告。 旅行:一目了然地接收您的旅行信息。...如果要在应用中显示的内容太多,请将它们拆分为多个页面(卡片)。 避免使用用户的传统输入系统,一目了然,将其保持在最低限度,一目了然,为您的手表使用更智能的解决方案,向“Google Now”问好。...,您无法访问任何子视图。...要在此区域内显示,布局中的子视图将指定具有顶部、底部、左侧和右侧或全部组合的属性。...打开设备的蓝牙连接并将其与磨损模拟器配对。配对过程完成后,您将在设备佩戴应用程序上看到此窗口。 图 3:与仿真器连接的设备。

    75110

    安卓第四夜 概念漫游(下)

    在安卓第三夜 概念漫游(上)中,我介绍了安卓最基本的功能单元和Intent的连接方式。在这个骨架之上,我们可以进一步增加一些与开发密切相关的重要概念。...界面上总是有各种各样的视图元素,比如一个按钮,一行文字和一个输入栏。每一种视图元素在安卓中表示为一个View类,比如Button类,TextView类和EditText类。...安卓可以理解这样的XML定义,并把XML节点实例化为内存中的对象,也就是Layout Inflate的过程。比如下面的XML记录: 视图树,比如在手机屏幕显示一个Fragment,而在平板上显示两个Fragment。...这样,视图的设计也可以重复利用不用不同的设备了。 Fragment的运行方式与Activity类似,也是在状态转换中调用onStart()等方法。

    1.3K100

    【谷歌官方文档】1.1 建立第一个APP

    /activity_my.xml 这是刚才用Android Studio创建项目时新建的Activity对应的xml布局文件,按照创建新项目的流程,Android Studio会同时展示这个文件的文本视图和图形化预览视图...在真实设备上运行 如果有一个真实的Android设备,以下的步骤可以使我们在自己的设备上安装和运行应用程序: 手机设置 把设备用USB线连接到计算机上。...在大部分运行Andriod3.2或更老版本系统的设备上,这个选项位于“设置>应用程序>开发选项”里。 在Andriod 4.0或更新版本中,这个选项在“设置>开发人员选项”里。...例如,你可以创建两个版本的布局文件,告诉系统在小屏幕上使用其中一个布局文件,在大屏幕上使用另外一个布局文件。参见 兼容不同的设备。...LinearLayout 里的子布局按照 XML 里定义的顺序显示在屏幕上。

    3.3K20

    安卓第八夜 玛丽莲梦露

    上一讲说明了数据库中存取数据的方法。这一讲将以条目的视图方式,来以相似的视图方式,显示多个数据对象。这种方式特别适合于显示从数据库中取出的多个结构相似的数据,比如多个联系人,或者多个联系人分类。...描述 多个条目的视图方式在应用中很常见,比如联系人目录。我们经常会根据数据的数量,动态的调整显示条目的个数。譬如一个社交应用显示好友信息。当好友数目增加或减少时,安卓需要动态的增加或减少显示好友条目。...至于每个条目的具体内容和显示格式,将在下面的CategoryActivity中说明。 使用ArrayAdapter 现在,有了视图,我们要考虑数据。...此时,我们需要如if结构中那样,重建新的条目视图。 我将要赋予给条目的视图布局保存在list_category.xml中。它在位于一行中包含了两个TextView: 在某个视图元素上。

    1.1K10

    【Android从零单排系列三十四】《Android布局介绍——ConstraintLayout》

    这意味着你可以根据需要自由调整视图的位置,并确保在不同屏幕尺寸或设备方向下的正确布局。 性能优化:ConstraintLayout针对性能进行了优化,可以减少布局层次以及视图的嵌套。...开发者可以使用约束条件(如layout_constraintLeft_toLeftOf、layout_constraintTop_toTopOf等)来定义视图与其他视图或边界的关系,从而精确控制视图在布局中的位置和大小...:在XML文件中,你可以通过预览功能(如Android Studio中的布局编辑器)来查看布局效果,并根据需要进行微调和修改。...运行应用程序:完成布局后,运行应用程序,并在实际设备或模拟器上查看布局效果。根据需要,可以在运行时动态更改约束条件或视图属性。...layout_constraintBottom_toBottomOf="parent" /> 在上面的示例中

    1.3K20

    安卓第八夜 玛丽莲梦露

    上一讲说明了数据库中存取数据的方法。这一讲将以条目的视图方式,来以相似的视图方式,显示多个数据对象。这种方式特别适合于显示从数据库中取出的多个结构相似的数据,比如多个联系人,或者多个联系人分类。...描述 多个条目的视图方式在应用中很常见,比如联系人目录。我们经常会根据数据的数量,动态的调整显示条目的个数。譬如一个社交应用显示好友信息。当好友数目增加或减少时,安卓需要动态的增加或减少显示好友条目。...至于每个条目的具体内容和显示格式,将在下面的CategoryActivity中说明。 使用ArrayAdapter 现在,有了视图,我们要考虑数据。...此时,我们需要如if结构中那样,重建新的条目视图。 我将要赋予给条目的视图布局保存在list_category.xml中。它在位于一行中包含了两个TextView: 在某个视图元素上。

    2.3K90

    应用开发进阶必经之路之性能优化(上)

    使用各种性能工具有助于快速定位问题,这比凭感觉要靠谱得多; 使用低配置的设备:同样的程序,在低端配置的设备中,相同的问题会暴露得更为明显;高配的设备很多时候会让你忽略掉性能问题; 权衡利弊:在能够保证产品稳定...开发者选项需要进入开发者模式后才能在系统设置中显示,对于大多数设备,可以通过如下方式在手机中开启开发者选项:打开“系统设置”→点击进入“关于手机”→连续点击“版本号”选项直至提示已进入“开发者模式”,就可以在...调试GPU 过渡绘制”→点击“显示过渡绘制区域”,一旦使能,对设备中的任何应用都有效: ?   ...,并不会影响页面的测量、绘制、显示效率,在代码中通过inflate加载ViewStub时,ViewStub会用在布局文件中为其指定的布局文件来代替它自身,通过前面的解释可想而知,ViewStub只能够被...,主要作用是实时查看每一帧的渲染效率,定位哪里存在渲染的性能问题;通过如下方式可以打开GPU呈现模式分析:“系统设置”→“开发者选项”→“GPU呈现模式分析”→在弹出的窗口中选择“在屏幕上显示成条形图(

    84720

    Kotlin入门(22)适配器的简单优化

    tv_desc;     } } 上面Java实现的适配器类PlanetJavaAdapter,果真又冗长又晦涩,然而这段代码模版基本上是列表视图的标配,只要用Java编码,就必须依样画瓢。...这意味着,上面的控件对象必定是先获得实例,在它们被使用的时候肯定是非空的,因此完全可以告诉编译器,这些控件对象一定会在使用前赋值,编译器您老就高抬贵手,睁一只眼闭一只眼放行好了。...lateinit,表示该属性为延迟初始化属性; 网格视图 在前面的列表视图一小节中,给出了Kotlin改写后的适配器类,通过关键字lateinit固然避免了麻烦的空校验,可是控件对象迟早要初始化的呀...}     //ViewHolder中的属性在构造时初始化     inner class ViewHolder(val view: View) {         val ll_item: LinearLayout...至此基于BaseAdapter的Kotlin列表适配器告一段落,上述的适配器代码模版,同时适用于列表视图ListView与网格视图GridView。 点此查看Kotlin入门教程的完整目录

    1.5K10

    笔记46 | Android性能优化之优化layout的层级(一)

    Hierarchy Viewer 会让你选择设备或者模拟器上正在运行的进程,然后显示其 Layout 的树型结构。每个块上的交通灯分别代表了它在测量、布局和绘画时的性能,帮你找出瓶颈部分。...hierarchyviewer这个工具在 /tools/中。当打开时,它显示一张可使用设备的列表,和它正在运行的组件。点击 Load View Hierarchy 来查看所选组件的层级。...在上图中,你可以看到一个三层结构,其中右下角的 TextView 在布局的时候有问题。点击这个TextView可以看到每个步骤所花费的时间。 ?...Lint 中包含的一些检测规则有: 使用compound drawable — 用一个compound drawable 替代一个包含 ImageView和 TextView的 LinearLayout...你也可以在 Android Studio 中管理检测选项,在 File > Settings > Project Settings ? 中。检测配置页面会显示支持的检测项目。

    1.8K70

    用户界面开发基础

    代码托管 Github Activity的使用方法 Activity是Android中最核心的应用程序组件,也是大多数程序必须使用的用于显示界面的组件。...在不同的XML布局文件中可以存在相同ID的视图,但是在同一个XML文件中,虽然也可以有相同ID的视图,但是通过ID获取视图时,只能够获取按照定义的顺序的第一个视图对象,其他相同ID值的视图对象将无法回去...在代码中控制视图 举个例子: TextView tv = (TextView)findViewById(R.id.textView1); tv.setText("UUUUU"); 还可以使用字符串资源对...上一层视图会覆盖下一层视图,类似于堆栈,因此也被称为堆栈布局。 ---- 线性布局LinearLayout 最常用的布局方式。 线性布局可以分为水平线性布局和垂直先行布局。...将视图按水平方向居中显示 center 将视图按垂直和水平方向居中显示 LinearLayout标签中的子标签还可以使用layout_gravity和layout_weight属性来设置每一个视图的位置

    2.2K20

    Android性能优化(二)之布局优化面面观

    二、60fps VS 16ms 根据Google官方出品的Android性能优化典范,60帧每秒是目前最合适的图像显示速度,事实上绝大多数的Android设备也是按照每秒60帧来刷新的。...我们可以通过调试工具来检测Overdraw:设置——开发者选项——调试GPU过度绘制——显示过度绘制区域。 ? 原色 – 没有过度绘制 – 这部分的像素点只在屏幕上绘制了一次。...优化过程中使用低端手机更易发现瓶颈; 五、Profiling GPU Rendering 根据Android性能优化典范,打开设备的GPU配置渲染工具——》在屏幕上显示为条形图,可以协助我们定位UI渲染问题...,为了将内容绘制到屏幕上,Android需要使用Open GL ES的API接口来绘制显示列表,红色线条越高表示需要绘制的视图更多; Sync & Upload:表示的是准备当前界面上有待绘制的图片所耗费的时间...,为了减少该段区域的执行时间,我们可以减少屏幕上的图片数量或者是缩小图片的大小; Draw:表示测量和绘制视图列表所需要的时间,蓝色线条越高表示每一帧需要更新很多视图,或者View的onDraw方法中做了耗时操作

    1.2K30

    Android Hierarchy Viewer

    每一个界面都使用了LinearLayout和FrameLayout布局,以及文本框TextView及图片框ImageView控件。...如下图,三个界面中的图案分别用了一只小猫,一个鱼缸,一条金鱼,它们各自的位置布局见下图: 1)在上面的三个图中,最左面的一个图,使用了一个垂直布局的LinearLayout,并且划分为两行,第一行是一个...TextView文本框,里面的文字是“Safe”,第2行是一个FrameLayout帧布局,分别包含了一条鱼和一个鱼缸子。...6 理解Hierachy Viewer的主窗口 最左部分的主窗口,将一个Activity中的所有控件的层次结构从左到右显示了出来,其中最右部分是最低一层的控件。...再往左边看,可以看到再上一层的控件:LinearLayout布局控件以及它包含的一个TextView控件(显示“Safe”字样)以及@id/frameLayoutFishbowl的frameLayout

    1.5K20

    点击显示更多文本自定义控件

    写在前面的话: 在正常项目流程中,我们很多情况下会碰到点击显示更多文本,这样可以利于页面变化加载,点击显示更多可能会非常常用,现在博主利用自己的闲暇时间来一点一点完成一个自定义控件,这个控件可以满足大多数情况的需求...思路: 在写程序的时候,最需要的是思路,好的思路是成功的一半,我们来看看我们的最基本的需求效果: 1、需要在文字特别多的情况下显示只有确定的行数 2、点击右侧图片将所有的文字显示出来 3、文字在左侧覆盖大部分布局...,图标在右侧点击显示更多 4、显示的文本不会因为重用优化视图从而发生状态错位 实现需求: 1、继承LinearLayout: public class ExpandableContainer extends...textView.setMaxLines(lines); initView(); } } 3、在多条目布局的情况下显示状态会让该布局的显示状态发生显示乱位,于是用自带内存的方式来解决这一问题...预览效果.gif 项目核心view的代码: /** * Created by ke_li on 2017/1/13.

    1.2K30

    速读原著-Android应用开发入门教程(作为简单容器使用的视图组)

    使用 RadioGroup 组成一个单选列表,需要将 RadioButton 放置在一个 RadioGroup 中。...根据扩展关系RadioGroup本身即是ViewGroup,也是LinearLayout,因此在RadioGroup中也可以包含RadioButton之外的其他控件。...8.3.2.使用滚动条 当屏幕上控件的内容超过屏幕本身的尺寸时,一般可以通过出现滚动条(ScrollBar)供用户拖动来显示没有显示的内容。...> 这里指定了 android:scrollbars="none"表示本屏幕中没有滚动杆,即使这样依然可以使用上下键和触摸屏进行上下移动。...Android 应用虽然支持滚动视图,但是在手机上,一般的界面并不一定适合使用这种的方式,在大多数情况下还是应该协调屏幕的尺寸和元素,保证一个屏幕可以完全显示内容。

    1K10
    领券