在Android Studio中看不到完整的视图布局


89

我正在创建将在垂直ScrollView中显示的垂直LinearLayout。我找不到在Android Studio中查看ScrollView底部下方的LinearLayout部分的方法。有什么方法可以查看完整的布局,而不是将其约束到渲染器提供的视口吗?

Answers:


66

就像Drew所说的那样,创建用户定义的设备定义是对我有用的唯一解决方案。下面我向您展示了要遵循的步骤:

步骤1)在预览窗格中,打开“ 虚拟设备选择”下拉菜单,然后选择“ 添加设备定义”。

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

步骤4)在该配置的硬件配置文件对话框中指定(FE)一个分辨率 720×4000像素的和分辨率汇总的12英寸。还设置分辨率汇总导致密度xhdpi(感谢METE)。

在此处输入图片说明

步骤5)关闭所有对话框,然后重新启动Android Studio。步骤6)打开“ 虚拟设备选择”下拉列表。新的用户定义的硬件配置文件可在“ 通用电话和平板电脑”下找到。 在此处输入图片说明


1
感谢您提供所有图片和有用说明的答案
Roozbeh Zabihollahi 2016年

看不到任何增加高度的地方
Lasitha Lakmal

37

我刚刚发现了。您需要在Android AVD中创建用户定义的设备定义-我创建的分辨率为480 x 4000像素。退出并重新启动Android Studio,然后可以在预览渲染器中选择此设备,并可以看到4000像素的LinearLayout。


+1,因为我没有分开我的观点,并指出需要重新启动。
伊恩·史密斯

这是我到目前为止发现的唯一合适的解决方案。有一个问题。使用此分辨率时,Android Studio会自动将密度设置为xxxhdpi。有没有办法将密度设置回hdpi?我正在使用Android Studio v1.2
Brabbeldas,2015年

2
@Brabbeldas在创建配置文件时,可以以像素为单位提供宽度和高度,但是也可以以英寸为单位提供“屏幕尺寸”,并且这些设置的组合可以设置密度。例如,我将我的屏幕尺寸设置为480x4000,屏幕尺寸为16英寸,这给了我hdpi
Mete

我用屏幕截图添加了一个新答案,该截图描述了如何创建用户定义的设备定义。@Drew,如果您发现它对他人有用,则可以接受为正确答案。
Brabbeldas 2015年

精彩!对我来说,调整大小一次是行不通的!吼叫答案stackoverflow.com/a/31582758/1752988也很有帮助!
Randika Vishman'2

30

找到了一个更简单的解决方案,在您layout添加的内容如下所示,并根据需要进行调整:

android:layout_marginTop="-1500dp"

16
最佳答案,但如果使用以下工具会更好:tools:layout_marginTop =“-1500dp”。这样,负向滚动仅适用于布局编辑器,不适用于运行时。
Leandro Glossman,2015年

当@Eric提到的按钮不可用时很有用。
Chintan Shah

18

在新版本的android studio中(我不知道从哪个版本开始,但我现在使用的是最新的2.3.3),您可以通过拖动来调整预览版式的大小

在此处输入图片说明


7
+1对我有用,但必须手动将上述gif中的设备从nexus 4更改为“自定义”,以显示拖动按钮。
Songo '18年

17

如果ScrollView是布局的根,则Android Studio将提供可切换的全视图。我将我放在默认的RelativeLayout之上,并且必须手动在XML中修复它,然后GUI才能提供完整视图。


您如何找到这个?
mszaro 2014年

1
@MattSzaro我不记得我在哪里找到信息了,但是如果你是说要在哪里找到要更改它的XML,那么滚动视图就是根项,当打开一个视图的.xml时,在底部有两个选项卡: “设计”和“文本”。点击“文字”。如果您是指更改后在哪里可以找到切换开关,我想您需要关闭并重新打开项目一次(也许),然后在“设计”中它是工具栏第二行中最左边的按钮,带有一个图标看起来是三列纸或其他内容:“切换视口渲染模式”。
davidgro 2014年

1
@davidgro,我一直在寻找工具栏中的选项。谢谢!这确实有帮助。
mszaro 2014年

1
结合“ 使用…重新使用布局<include/> ”中的技术,我们可以ScrollView将布局中间的a 提取到单独的XML文件中,并完整查看它。
庞(Pang)

如果您的滚动视图不是根视图,该怎么办。希望他们能扩展整个血腥的事物,并且只需将电话屏幕的轮廓放在顶部即可显示可见区域。
JPM

17

希望屏幕截图对您有所帮助:

屏幕截图


4
当我在组件树上单击scrollView时缺少此按钮
user3491799 2015年

8
刚刚发现,scrollview必须位于顶层才能显示该按钮。谢谢埃里克!
user349179915年

全视图选项解决了垂直滚动视图的问题,但是我有一个嵌入式的水平滚动视图,该滚动视图仍然仅部分可见(其余扩展到视图右侧),有没有办法解决此问题而不使用“自定义设备”选项?
以撒2015年

1
这是完美的答案。它比非常高的设备轮廓要好。并可以在Android Studio 0.1.7+版本中使用
忍者

12

您可以使用scrollY属性在预览中滚动ScrollView。在工具名称空间中使用scrollY属性只会在显示中滚动视图,而不会在实际应用中滚动。并确保使用px作为带有scrollY属性的单位。

tools:scrollY="150px"

5

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

简短的答案:右键单击ScrollView并选择Refactor> Extract> Layout

Android-studio会将您的ScrollView提取到新的布局文件中,并将tools:showIn="@layout/original_layout_file"属性放在根布局(您的ScrollView)中。

注意:如果根布局为ScrollView,则Android-studio将预览完整布局。


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

4

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

android studio自定义预览示例


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


1

另一种快速的替代解决方案是将布局临时隐藏在顶部,以便底部布局可以显示在Android Studio的可见窗口中。

放置android:visibility="gone"要隐藏的布局。

例:

<HorizontalScrollView
            android:visibility="gone"
            android:id="@+id/hsv02"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignStart="@+id/ll24"
            android:layout_below="@+id/ll199">

 </HorizontalScrollView>

这是一个非常不舒服的解决方案……至少不要这样做,这是非常必要的。
Joaquin Iurchuk 2015年

1
使用tools:visibility="gone"
dnp

0

我可能已经晚了,但是将边距设置为负将滚动视图向左移动会容易得多。

例如:

保证金:

左:-100px

现在,您可以随意查看和编辑滚动视图!


0

桌面布局

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1">
    <TableRow android:padding="5dip">
        <TextView
            android:layout_height="wrap_content"
            android:text="New Product Form"
            android:typeface="serif"
            android:layout_span="2"
            android:gravity="center_horizontal"
            android:textSize="20dip" />
    </TableRow>
    <TableRow>
        <TextView
            android:layout_height="wrap_content"
            android:text="Product Code:"
            android:layout_column="0"/>
        <EditText
            android:id="@+id/prod_code"
            android:layout_height="wrap_content"
            android:layout_column="1"/>
    </TableRow>
    <TableRow>
        <TextView
            android:layout_height="wrap_content"
            android:text="Product Name:"
            android:layout_column="0"/>
        <EditText
            android:id="@+id/prod_name"
            android:layout_height="wrap_content"
            android:scrollHorizontally="true" />
    </TableRow>
    <TableRow>
        <TextView
            android:layout_height="wrap_content"
            android:text="Product Price:" />
        <EditText
            android:id="@+id/prod_price"
            android:layout_height="wrap_content" />
    </TableRow>
    <TableRow>
        <Button
            android:id="@+id/add_button"
            android:text="Add Product"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/cancel_button"
            android:text="Cancel"
            android:layout_height="wrap_content" />
    </TableRow>
</TableLayout>
















GridLAYOUT

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/GridLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="3"
    android:rowCount="2"
    tools:context=".Main3Activity" >
    <Button
        android:id="@+id/button3"
        android:layout_column="0"
        android:layout_gravity="fill_horizontal"
        android:layout_row="0"
        android:text="Button"
        />
    <Button
        android:id="@+id/button1"
        android:layout_column="1"
        android:layout_gravity="fill_horizontal"
        android:layout_row="0"
        android:text="Button" />
    <Button
        android:id="@+id/button2"
        android:layout_column="2"
        android:layout_gravity="fill_vertical"
        android:layout_row="0"
        android:layout_rowSpan="2"
        android:text="Button" />
    <Button
        android:id="@+id/button4"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"
        android:layout_row="1"
        android:text="Button" />
</GridLayout>





ANOTHER TABLE LAYOUT

<?xml version="1.0" encoding="utf-8"?>
<android.widget.TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1"
    tools:context="com.example.dhanya.uitablelayout.MainActivity">
    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView
            android:text="Time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0" />
        <TextClock
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textClock"
            android:layout_column="1" />
    </TableRow>
    <TableRow>
        <TextView
            android:text="First Name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0" />
        <EditText
            android:width="200px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>
    <TableRow>
        <TextView
            android:text="Last Name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0" />
        <EditText
            android:width="100px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>
    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <RatingBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_span="2"
            android:id="@+id/ratingBar"
            android:layout_column="0" />
    </TableRow>
    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Submit"
            android:layout_span="2"
            android:id="@+id/button"
            android:layout_column="0" />
    </TableRow>
</android.widget.TableLayout>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.