在Android Studio中无法查看已完成的视图布局

91

我正在创建一个垂直的LinearLayout,它将在垂直的ScrollView中显示。在Android Studio中,我找不到一种方法可以查看位于ScrollView底部以下的LinearLayout部分。是否有任何方法可以查看完整的布局,而不是将其限制为渲染器提供的视口?

15个回答

67

像Drew所说的那样,创建一个自定义设备定义是我找到的唯一解决方案。下面我将向您展示跟随的步骤:

步骤1) 在预览窗格中,打开虚拟设备选择下拉菜单,并选择添加设备定义..

输入图像描述

步骤2) 在您的虚拟设备对话框中,单击创建虚拟设备按钮。

输入图像描述

步骤3) 在选择硬件对话框中,单击新建硬件配置文件按钮。

输入图像描述

步骤4) 在配置硬件配置文件对话框中指定(例如)分辨率为720 x 4000像素和12英寸的屏幕尺寸。同时设置屏幕尺寸会导致密度xhdpi(感谢Mete)。

输入图像描述

步骤5) 关闭所有对话框并重新启动Android Studio。 步骤6) 打开虚拟设备选择下拉菜单。新的用户定义硬件配置文件可以在通用手机和平板电脑下找到。 输入图像描述


1
感谢您的回答,附带所有图片和有用的描述。 - Roozbeh Zabihollahi
找不到任何地方添加高度。 - Lasitha Lakmal

37

我刚刚发现了如何实现。您需要在Android AVD中创建一个自定义设备定义 - 我创建了一个大小为480 x 4000像素的设备。退出并重新启动Android Studio,然后您就可以在预览渲染器中选择此设备,并可以看到4000像素的LinearLayout。


+1 因为我不需要拆开我的视图,并且指出了需要重新启动的必要性。 - Iain Smith
这是目前我找到的唯一合适的解决方案。但是有一个问题:当使用这个分辨率时,Android Studio 会自动将密度设置为xxxhdpi。有没有办法将密度重新设置为hdpi?我正在使用Android Studio v1.2。 - Brabbeldas
2
@Brabbeldas 当您创建配置文件时,可以以像素为单位提供宽度和高度,但也可以以英寸为单位提供“屏幕尺寸”,这些设置的组合设置了密度。例如,我将我的设置为480x4000,屏幕尺寸为16英寸,这使我获得了hdpi。 - Mete
我已经添加了一个新的答案,附有截图,描述如何创建用户定义的设备定义。@Drew,如果你认为对他人有用,你可以将其接受为正确答案。 - Brabbeldas
太好了!我尝试过一次调整大小,但没有成功。下面这个答案https://dev59.com/1GEi5IYBdhLWcg3wJpgl#31582758也很有帮助! - Randika Vishman

31

找到一个更简单的解决方案,在你的layout中添加以下内容,并按需进行调整:

android:layout_marginTop="-1500dp"

17
最佳答案,但如果您使用“tools:layout_marginTop =” -1500dp“会更好。这样负滚动仅适用于布局编辑器,而不适用于运行时。 - Leandro Glossman
当@Eric提到的按钮不可用时很有用。 - Chintan Shah

19

在新版的Android Studio中(我不知道从哪个版本开始,但我现在正在使用最新的2.3.3),您可以通过拖动来调整预览布局的大小。

输入图像描述


7
+1 对我有用,但是我不得不手动将上面 gif 中的设备从 Nexus 4 更改为“Custom”才能显示拖动按钮。 - Songo

17

如果ScrollView是布局的根元素,Android Studio将提供可切换的全视图。我将其置于默认RelativeLayout顶部,必须在XML中手动修复才能获得完整视图。


你觉得这个怎么样? - mszaro
1
@MattSzaro 我不记得我在哪里找到这个信息,但如果你是指在哪里找到XML以更改它,使scrollview成为根项目,则在打开视图的.xml文件时,底部有两个选项卡:“设计”和“文本”。点击“文本”。如果您是指在进行更改后找到切换按钮的位置,我认为您需要关闭并重新打开项目一次(也许),然后在“设计”中,它是工具栏第二行最左边的按钮,带有一个看起来像三列纸张或其他东西的图标:“切换视口渲染模式”。 - davidgro
1
@davidgro,我正在寻找工具栏中的选项。谢谢!这真的很有帮助。 - mszaro
1
结合使用“<include/>重用布局”技术,我们可以将布局中间的ScrollView提取到单独的XML文件中,并全屏查看。 - Pang
如果您的ScrollView不是根视图,该怎么办?希望他们能够扩展整个可见区域,并在顶部放置手机屏幕的轮廓以显示可视区域。 - JPM
这是谷歌需要研究的问题,为什么不直接检测任何滚动视图并使其可滚动。 - Zapnologica

17
我希望截图能够帮助您:

屏幕截图


4
在组件树上单击我的滚动视图时,我错过了这个按钮。 - user3491799
8
刚刚发现ScrollView必须是最上层才能显示按钮。感谢Eric! - user3491799
全视图选项解决了我在垂直滚动视图中的问题,但是我有一个嵌入式的水平滚动视图仍然只能部分可见(其余部分超出视野向右延伸)。有没有一种方法可以解决这个问题而不使用自定义设备选项? - Essah
1
这是完美的答案。它比最高设备配置文件更好,并且在Android Studio 0.1.7+中可用。 - Ninja

13

您可以使用scrollY属性来滚动预览中的ScrollView。在tools命名空间中使用scrollY属性仅会在显示中滚动视图,而不是在实际应用程序中滚动视图。并且请确保使用px作为scrollY属性的单位。

tools:scrollY="150px"

5

更新:现在你可以直接在预览面板中滚动ScrollView了(我在Android studio 2.3.2版本中进行了测试)。

简短回答:右键点击你的ScrollView,选择Refactor(重构) > Extract(提取)> Layout(布局)

Android Studio将把你的ScrollView提取到一个新的布局文件中并在根布局(即你的ScrollView)中添加tools:showIn="@layout/original_layout_file"属性。

注意:如果根布局是ScrollView,则Android Studio会预览整个布局。


1
@Tequilaman 如果你使用的是Android Studio 2.3.2版本,你可以在预览面板上通过鼠标滚轮来滚动ScrollView的内容。 - Momepukku

4
在Android Studio 3.2.1版本中,您可以在预览面板上选择“自定义”设备,然后将预览调整为所需的任何高度。

android studio custom preview example


1
这是最简单的方法!最好的。 - Noor Hossain

2
  • 点击组件树中的scrollView(在右侧)
  • 点击左侧出现的新按钮(工具栏的第二行)

1
你能添加一张截图吗?我看不到任何新的按钮出现。 - Brabbeldas
@Brabbeldas 新增了一个名为“切换视口渲染模式”的按钮。或许这个链接可以帮到你:https://dev59.com/1GEi5IYBdhLWcg3wJpgl#30443662 - Ninja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接