GVKun编程网logo

Android Studio使用小技巧:布局预览时填充数据

9

在本文中,您将会了解到关于AndroidStudio使用小技巧:布局预览时填充数据的新资讯,并给出一些关于AndroidStudio1.2.1.1布局预览问题、AndroidStudio3.1.3不显

在本文中,您将会了解到关于Android Studio使用小技巧:布局预览时填充数据的新资讯,并给出一些关于Android Studio 1.2.1.1布局预览问题、Android Studio 3.1.3不显示布局设计预览、Android Studio Debug 的 9 个小技巧、Android Studio 中的布局预览在哪里?的实用技巧。

本文目录一览:

Android Studio使用小技巧:布局预览时填充数据

Android Studio使用小技巧:布局预览时填充数据

我们都知道Android Studio用起来很棒,其中布局预览更棒。我们在调UI的时候基本是需要实时预览来看效果的,在Android Studio中只需要切换到Design就可以看到,而且我们需要在布局上填充数据预览效果更好,比如我们在TextView中设定text属性来看下字体大小与布局是否正确,但是呢正式环境我们又需要移除这些额外的数据,不然看着很不舒服,这个时候就用到了本篇博客介绍的一个技巧。

废话不多说,直接上图:

上述示例中只需要在xml布局文件中添加tools命名空间的text属性就ok了,此属性和正式发布的版本完全无关,是不是很酷?

用之前只需要在跟布局添加命名空间就ok了

复制代码 代码如下:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    ...

用法很简单,只需要用tools的命名空间代替android的命名空间,我们可以这样使用
复制代码 代码如下:

<ListView
    android:id="@+id/listView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fastScrollAlwaysVisible="true"
    tools:fastScrollAlwaysVisible=""/>

也可以这样使用
复制代码 代码如下:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First"
    tools:visibility="invisible" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Second"
    tools:visibility="visible" />


注意的是tools属性只能在layout文件中使用,而且只能使用framework自带的一些属性,不可以用使用自定义属性,不过这足够了,基本上能满足我们的需求了。

您可能感兴趣的文章:

Android Studio 1.2.1.1布局预览问题

Android Studio 1.2.1.1布局预览问题

更新到 Android Studio 1.2.1.1后,我创建了一个新的空白项目并创建了一个layout.xml

创作后不久,我决定查看预览.我进去了,我看到了这个:

The following classes Could not be instantiated:
–android.support.v7.internal.widget.ActionBarOverlayLayout (Open Class,Show Exception,Clear Cache) Tip: Use View.isInEditMode() in
your custom views to skip code or show sample data when shown in the
IDE Exception Details java.lang.NoClassDefFoundError: Could not
initialize class
android.support.v7.internal.widget.ActionBarOverlayLayout at
java.lang.reflect.Constructor.newInstance(Constructor.java:408) at
android.view.LayoutInflater.inflate(LayoutInflater.java:482) at
android.view.LayoutInflater.inflate(LayoutInflater.java:414) at
com.android.layoutlib.bridge.bars.BridgeActionBar.(BridgeActionBar.java:84)
at
com.android.layoutlib.bridge.bars.AppCompatActionBar.(AppCompatActionBar.java:56)
copy stack to clipboard

我以前从未见过它,我以前从未见过它.
任何人都知道如何解决这个问题?

编辑:

有人推荐我this位置,但它没有工作.它只给我带来了NullPointerExceptions.

我尝试重建项目,但它没有用.

解决方法

似乎是一个bug.解决方法是从styles.xml中的Base主题继承:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light"/>

Android Studio 3.1.3不显示布局设计预览

Android Studio 3.1.3不显示布局设计预览

自从我上次在android studio中创建一个新项目以来已经过了一段时间,今天当我这样做时,android studio没有显示布局预览中的任何内容.它是一个空白的窗口,上面写着“无需展示”.

我已经尝试过;

更新了sdks工具,
清理项目并重建它,
无效和重新启动的缓存,
主题变化,
但仍然没有.

解决方法:

根据我的经验,切换到“设计”.click“强制刷新布局”

Android Studio Debug 的 9 个小技巧

Android Studio Debug 的 9 个小技巧

作者:wanbo

周末看 Android Dev Summit ''19 的视频的时候,看到一章关于 Android Studio Debug 的介绍,有很多日常非常有用的小技巧,学习了这些小技巧能很大程度的降低我们 Debug 的成本,快速定位问题的本质,今天就向大家介绍一下 Android Studio Debug 的 9 个小技巧。

没关注的小伙伴记得关注,如果觉得这些文章有点意思,记得分享转发评论点赞!

1. Log 过滤和折叠

有时候 Logcat 中 log 的信息很长,同时还有些我们不需要的信息也打印出来,例如下图中的【时间+线程 ID】。

这个时候我们可以点击 Logcat 窗口上的【设置】按钮,设置一条 Log 需要显示哪些关键信息,可设置的项有:时间、线程ID、包名、Tag name。我们可以根据自己的需要控制显示,并且下面还会有一条 Sample Log 提供设置后的预览效果,就像下图中这样。

日常开发的时候我们还会遇到另一种情况,比如根据当前 UI 的渲染情况,我们需要时刻打印 UI 的某个值,来帮助我们观察 UI,同时当到达某种条件的时候,输入一条我们得到的【结果 log】。也就是说在获得我们的【结果 log】之前会有很多没用但是又必须打印的 log,这样当我们需要查找【结果 log】的时候就会非常麻烦。

就像上图中这样,我们的【结果 log】被上下【循环打印 log】包围了,很难一下子找出来,这时候我们可以选关键字【右键】,选择【Fold Lines Like This】,如下图所示。

这样我们相同关键字的 log 就会被折叠,当然也可以展开查看详细 log。

2. 自定义断点执行条件

我们来看上面这段代码,通过字面意思我们可以得知:这是一个点击事件执行的方法,点击发生后通过 NavController 从当前 HomeFragment 跳转到 EmailFragment。然后我们在第一行打了一个断点,我们已经得知当 email 的 subject 包含 【Bonjour】关键字的时候,这段代码会发生崩溃,反之不包含则不会发生崩溃,所以我们不需要每次断点都生效。

这里我们可以右键断点,在 Condition 里输入我们的条件判断语句,当条件允许的时候,断点才生效。条件语句的代码支持 Kotlin 和 Java 两种语言的写法,如下图所示。

然后如果我们想在跳转到 EmailFragment 之后进一步去追踪问题,于是我在 EmailFragment 的 onCreate 方法打了一个断点(如下图所示),然后这里还会遇到我们之前说的问题:不符合条件的时候断点也会生效,这时候我们该怎么办呢?

我们可以在这个断点上面,右键、点击更多

左边选择当前断点之后,在右边点击【Disable until breakpoint hit】,选择我们之前有条件判断的断点,那么这个新的断点会在它所跟随的断点生效之后才会生效。

3. 挂起线程

当我们右键任意一个断点的时候,会有一个 Suspend 选项【All、Thread】,All 也就意味着当我们在一个多线程的应用中 debug 问题的时候,一旦这个断点生效,所有的线程都会被挂起,Thread 表示只挂起当前线程。所以当我们在某个后台线程中 debug 问题的时候就可以选择 Thread,这样就不会在 debug 的时候阻塞主线程的正常功能。

还有一个打开关闭断点的快捷键也分享一下:Windows 用户 Alt + Click ,Mac Option + Click 。

4. 动态打印

详细很多人包括我之前在 debug 的时候,都会在需要 debug 的地方增加 print 输出一下信息供自己排查错误,这里提供一种快捷方便的方法,可以既不污染我们的代码,又可以随时输出任意信息。

如上图所示,在需要打印的地方增加断点,然后取消所有线程的挂起,选择【Evaluate and log】,属于我们需要打印的语句,当代码执行到断点的时候,不会暂停,而会根据我们设置的打印信息输出 log,是不是很方便?

5. 断点分组

通常遇到一个问题的时候,我们需要增加很多断点去追踪问题的原因,当问题解决之后,往往会忘记取消这些断点,导致在某次调试的时候,设备会被之前的断点所暂停,会让我们很无语。这里我们可以 debug 的时候在某个断点上:右键、更多,然后选择这个问题所有相关的断点,将它们分到同一个 Group 里面,那么这一个组的断点就可以统一开关、统一删除。

6. 断点上一步

说到这个真的很痛心,常常因为自己在 debug 的时候,由于下一步点击的太快了而错过了问题关键行,只能重新运行一次代码,重新 debug 然后自己一次次点击下一步。

在运行 Android 10 的设备上,debug 界面中提供了一个叫【Drop frame】的按钮,可以供我们跳出当前方法栈,返回上一步,这样就会避免我们因为错过断点而不得不重新运行代码。

7. 观察对象

当我们 debug 的时候,可以从 debug 窗口中观察当前作用域中的对象以及对象的属性,有时候我们会观察在不同页面是否是同一个对象,之前我的做法很粗暴...就是找张纸,把这个对象的 ID 记下来,然后在另一个页面 debug 看 ID 是否一致

这里我们可以在对象上右键、选择【Mark Object】之后会让你自定义一个 Label,然后在整个 debug 期间,相同的对象会以你设置的 Label 为 name 出现,帮助我们方便的分析是否是统一对象。

顺便提一下,在任意一段代码上,点击行号,可以从当前断点快速执行到目标行并暂停,这个我真是第一次知道,感觉之前 Android Studio 都白用了

而且在 debug 的时候我们可以选择 debug 窗口中的【Evaluate expression】按钮来动态观察对象,点击之后会弹出一个计算框,我们可以输入任意当前作用域中的对象以及属性观察。

不得不说这个真的很方便,以前遇到这种情况我只有一种方法就是:print ,当然这里不仅仅是观察对象,我们可以写任意代码观察我们想要的值,就像下图这样。

8. 增量更新

我试了一下,这两个按钮是真的很好用啊,比重新全量运行应用真是快了不少,非常方便。

9. 错误栈分析

通常我们 App 中会继承一下线上 bug 反馈的 SDK 比如 bugly,在 bugly 我们会得到崩溃的异常栈信息,类似下图这样。

我们可以全选复制,打开我们的 Android Studio,选择 Analyze → Analyze Stack Trace or Thread Dump,然后把异常栈信息粘贴进去,点击确定。

Android Studio 会在控制台显示这段异常栈信息,并且与现有代码 Link 在一起,我们可以点击跳转到问题所在行。

好了这就是今天要分享的全部内容,关于更多详细的内容,大家可以关注我,进入我的主页查看,改天考虑出一个【Android Studio 使用全攻略】,感觉很多人对 AS 真的只是会用,但还有很多东西需要去学习和探索。


感谢大家能耐着性子,看完我啰哩啰嗦的文章。

愿与各位在Android开发岗位的同胞们互相交流学习,共同进步!

在这里我也分享一份自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

如果你有需要的话,可以点赞+评论关注我

Android Studio 中的布局预览在哪里?

Android Studio 中的布局预览在哪里?

我安装了 Android Studio,但是当我编辑布局文件时,我找不到实时预览!我只看到一个 XML 文件。如何在图形视图中查看我的布局?

这就是我的情况:

在此处输入图像描述

答案1

小编典典

更新 2 (2020-03-16)

较新的 Android Studio 版本更改了此按钮的位置。现在,如果您想查看布局设计预览,您需要按 xml
右上角的按钮之一。看起来像图像图标的按钮将打开设计仪表板,而旁边的按钮将打开拆分视图,其中设计放置在 XML 代码旁边:

在此处输入图像描述

原创 (2013-05-21)

您应该在 xml 文本编辑器下的Design按钮旁边有一个按钮:Text

在此处输入图像描述

或者您可以使用Preview右上角的按钮在 XML 代码旁边添加一个预览窗口:

在此处输入图像描述

更新:

如果没有,请执行以下操作:View-> Tool Windows->Preview

在此处输入图像描述

今天的关于Android Studio使用小技巧:布局预览时填充数据的分享已经结束,谢谢您的关注,如果想了解更多关于Android Studio 1.2.1.1布局预览问题、Android Studio 3.1.3不显示布局设计预览、Android Studio Debug 的 9 个小技巧、Android Studio 中的布局预览在哪里?的相关知识,请在本站进行查询。

本文标签:

上一篇详解Android Studio Git分支实践(android studio中git)

下一篇网上常用的顶级录屏软件Camtasia Studio V3 免费提供下载了(专业录屏软件camtasia studio)