Android Studio提供了一个强大的“Preview”工具,可以帮助您预览您的布局文件将如何在用户的设备上呈现。XML布局可能是Android开发中最常用的资源。 您的项目中每个活动至少有一个布局文件。 Android Studio的预览工具可帮助您实现这些伟大的设计,并快速迭代它们,甚至不需要运行您的应用程序。它还允许您查看布局的不同配置,例如在纵向或横向时的外观,或者TextView在多个语言环境(如英语,德语或希腊语)上的外观。
即使预览工具是强大的,可以使你的发展日子轻而易举,与此同时,它也有一些缺点会让程序猿抓狂。这篇文章谈论Preview的常见问题和技巧。
这里是最常见的关于Preview的问题列表和解决方案(图片请右键用新标签放大查看):
在这种情况下可以使用View.isInEditMode()。 使用它来检查您是否是正在预览,并跳过在Preview时不可用的依赖:public ImageWithCaptionView(Context context, AttributeSet attrs) { super(context, attrs); if (!isInEditMode()) {
ArticlesApplication.getInjector().inject(this);
}
}
问题4:merge布局重叠
merge标签可以帮助您减少布局代码的重复。
然而,merge的问题是,它内部的所有组件将被折叠在一起,同时显示在预览里,造成视觉混乱。如下图所示,TextView覆盖在ImageView的上面:
问题6:ListView的Item和Header/Footer预览
使用tools:listitem / tools:listheader / tools:listfooter可以实现在预览中增加item、header、footer的效果。例如:
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/sample_list_item"
tools:listheader="@layout/sample_list_header"
tools:listitem="@layout/sample_list_footer" />
此特性在AS2.2有bug(无效),并在2.3中修复。