Không thể thấy bố cục chế độ xem hoàn chỉnh trong Android Studio


89

Tôi đang tạo một LinearLayout dọc sẽ được hiển thị trong ScrollView dọc. Tôi không thể tìm thấy cách nào trong Android Studio để xem phần của LinearLayout ở dưới cuối ScrollView. Có cách nào để xem toàn bộ bố cục thay vì giới hạn nó trong khung nhìn do trình kết xuất cung cấp không?

Câu trả lời:


66

Giống như Drew đã nói, việc tạo ra một định nghĩa thiết bị do người dùng xác định là giải pháp duy nhất phù hợp với tôi. Dưới đây tôi chỉ cho bạn các bước để làm theo:

Bước 1) Trong ngăn xem trước, mở menu thả xuống Lựa chọn thiết bị ảo và chọn Thêm định nghĩa thiết bị ..

nhập mô tả hình ảnh ở đây

Bước 2) Trong hộp thoại Thiết bị ảo của bạn, nhấp vào nút Tạo thiết bị ảo .

nhập mô tả hình ảnh ở đây

Bước 3) Trong hộp thoại Chọn phần cứng, nhấp vào nút Cấu hình phần cứng mới .

nhập mô tả hình ảnh ở đây

Bước 4) Trong hộp thoại Cấu hình Cấu hình Phần cứng, chỉ định (fe) Độ phân giải 720 x 4000 px và Kích thước màn hình là 12 inch. Ngoài ra thiết lập các kết quả Kích thước màn hình trong một mật độ của xhdpi (nhờ Mete).

nhập mô tả hình ảnh ở đây

Bước 5) Đóng tất cả các hộp thoại và khởi động lại Android Studio. Bước 6) Mở menu thả xuống Lựa chọn thiết bị ảo . Cấu hình phần cứng do người dùng xác định mới có thể được tìm thấy trong Điện thoại và Máy tính bảng Chung . nhập mô tả hình ảnh ở đây


1
Cảm ơn câu trả lời của bạn với tất cả hình ảnh và mô tả hữu ích
Roozbeh Zabihollahi,

không thể nhìn thấy bất cứ nơi nào để thêm chiều cao
Lasitha Lakmal

37

Tôi vừa khám phá ra cách. Bạn cần tạo định nghĩa thiết bị do người dùng xác định trong Android AVD - Tôi đã tạo một định nghĩa có kích thước 480 x 4000 pixel. Thoát và khởi động lại Android Studio, sau đó bạn có thể chọn thiết bị này trong trình kết xuất xem trước và có thể thấy LinearLayout có giá trị 4000 pixel.


+1 vì tôi không loại bỏ quan điểm của mình và để nêu rõ sự cần thiết của việc khởi động lại.
Iain Smith

Đây là giải pháp phù hợp duy nhất mà tôi đã tìm thấy cho đến nay. Có một vấn đề; Android Studio, khi sử dụng độ phân giải này, tự động đặt mật độ thành xxxhdpi. Có cách nào để đặt mật độ trở lại hdpi không? Tôi đang sử dụng Android Studio v1.2
Brabbeldas

2
@Brabbeldas khi bạn tạo hồ sơ, bạn có thể cung cấp chiều rộng và chiều cao bằng pixel, nhưng bạn cũng có thể cung cấp "Kích thước màn hình" theo inch và sự kết hợp của các cài đặt này sẽ đặt mật độ. Ví dụ tôi đặt mìn đến 480x4000 với một screensize 16 inch và điều này mang lại cho tôi hdpi
Mete

Tôi đã thêm một câu trả lời mới với ảnh chụp màn hình mô tả cách tạo định nghĩa thiết bị do người dùng xác định. @Drew, nếu bạn thấy nó hữu ích cho người khác, bạn có thể chấp nhận là câu trả lời chính xác.
Brabbeldas

Tuyệt vời! Đối với tôi thay đổi kích thước một lần không hoạt động! Và câu trả lời dưới đây stackoverflow.com/a/31582758/1752988 cũng rất hữu ích!
Randika Vishman

30

Đã tìm thấy một giải pháp dễ dàng hơn , hãy layoutthêm một số thứ như bên dưới và điều chỉnh khi bạn cần:

android:layout_marginTop="-1500dp"

16
Câu trả lời hay nhất, nhưng sẽ tốt hơn nếu bạn sử dụng: tools: layout_marginTop = "- 1500dp". Bằng cách này, cuộn phủ định chỉ áp dụng cho trình chỉnh sửa bố cục và không áp dụng trong thời gian chạy.
Leandro Glossman

Hữu ích khi nút được đề cập bởi @Eric không khả dụng.
Chintan Shah

18

trong phiên bản mới của android studio (tôi không biết từ phiên bản nào, nhưng tôi đang sử dụng phiên bản 2.3.3 mới nhất hiện nay), bạn có thể thay đổi kích thước bố cục xem trước của mình bằng cách kéo nó

nhập mô tả hình ảnh ở đây


7
+1 phù hợp với tôi, nhưng phải thay đổi thiết bị trong gif ở trên từ nexus 4 thành "Tùy chỉnh" theo cách thủ công để nút kéo hiển thị.
Songo,

17

Android Studio sẽ cung cấp chế độ xem đầy đủ có thể chuyển đổi, nếu ScrollView là gốc của bố cục. Tôi đã đặt của tôi lên trên RelativeLayout mặc định và phải sửa lỗi đó theo cách thủ công trong XML trước khi GUI cung cấp cho tôi chế độ xem đầy đủ.


Làm thế nào để bạn tìm thấy điều này?
mszaro

1
@MattSzaro Tôi không nhớ mình đã tìm thấy thông tin ở đâu, nhưng nếu bạn muốn tìm XML ở đâu để thay đổi nó để chế độ xem cuộn là mục gốc, có hai tab ở dưới cùng khi bạn mở .xml để xem: "Thiết kế" và "Văn bản". Nhấp vào "Văn bản". Nếu bạn muốn tìm nút chuyển đổi ở đâu khi bạn đã thực hiện thay đổi, tôi nghĩ bạn cần phải đóng và mở lại dự án một lần (có thể) và sau đó trong "Thiết kế", nút ngoài cùng bên trái ở hàng thứ hai của thanh công cụ, có biểu tượng trông giống như một mảnh giấy ba cột hoặc một cái gì đó: "Chuyển đổi Chế độ kết xuất Viewport".
davidgro

1
@davidgro, định vị tùy chọn trong thanh công cụ là những gì tôi đang tìm kiếm. Cảm ơn bạn! Điều này thực sự hữu ích.
mszaro

1
Kết hợp với kỹ thuật trong " Sử dụng lại các bố cục với<include/> ", chúng tôi có thể trích xuất một ScrollViewở giữa bố cục thành một tệp XML riêng biệt và xem toàn bộ.
Pang

Điều gì xảy ra nếu chế độ xem cuộn của bạn không phải là chế độ xem gốc. Ước gì họ sẽ mở rộng toàn bộ thứ đẫm máu và chỉ đặt một đường viền của màn hình điện thoại lên trên để hiển thị khu vực có thể xem được.
JPM

17

Tôi hy vọng ảnh chụp màn hình sẽ giúp bạn:

ảnh chụp màn hình


4
thiếu nút này khi tôi bấm vào scrollview của tôi trên Tree Component
user3491799

8
Chỉ thấy rằng chế độ xem cuộn phải là lớp trên cùng để hiển thị nút. Thx Eric!
dùng3491799

Chế độ xem đầy đủ Tùy chọn giải quyết vấn đề của tôi đối với chế độ xem cuộn dọc, tuy nhiên tôi có Chế độ xem cuộn ngang được nhúng vẫn chỉ hiển thị một phần, (phần còn lại mở rộng sang bên phải ngoài chế độ xem) Có cách nào để giải quyết vấn đề này mà không sử dụng tùy chọn Thiết bị tùy chỉnh ?
Essah

1
Đây là câu trả lời hoàn hảo. nó tốt hơn so với cấu hình thiết bị rất cao. và có sẵn trong android studio 0.1.7+
Ninja

12

Bạn có thể sử dụng thuộc tính scrollY để cuộn ScrollView trong bản xem trước. Sử dụng thuộc tính scrollY với không gian tên công cụ sẽ chỉ cuộn chế độ xem trong màn hình chứ không phải trong ứng dụng thực tế. Và đảm bảo rằng bạn sử dụng px làm đơn vị có thuộc tính scrollY.

tools:scrollY="150px"

5

Cập nhật: Bây giờ bạn có thể cuộn ScrollView ngay bên trong bảng xem trước (Tôi đã thử nghiệm trên Android studio phiên bản 2.3.2)

Câu trả lời ngắn gọn: Nhấp chuột phải vào ScrollView của bạn và chọn Refactor> Extract> Layout .

Android-studio sẽ trích xuất ScrollView của bạn thành một tệp bố cục mới và đặt tools:showIn="@layout/original_layout_file"thuộc tính ở bố cục gốc (ScrollView của bạn).

Lưu ý: Android-studio sẽ xem trước toàn bộ bố cục nếu bố cục gốc là ScrollView.


1
@Tequilaman Nếu bạn đang sử dụng Android phiên bản phòng thu 2.3.2 bạn có thể di chuyển nội dung scrollview bằng cách sử dụng một bánh xe chuột trên bảng điều khiển xem trước
Momepukku

4

Trong phiên bản Android Studio 3.2.1, bạn có thể chọn thiết bị "Tùy chỉnh" trên bảng xem trước và sau đó thay đổi kích thước bản xem trước thành bất kỳ chiều cao nào bạn cần.

ví dụ xem trước tùy chỉnh studio android


1
Đây là cách dễ dàng nhất! tốt.
Noor Hossain

2
  • nhấp vào scrollView trong cây conponent (ở bên phải)
  • nhấp vào nút mới sẽ xuất hiện ở bên trái (hàng thứ hai của thanh công cụ)

1
bạn có thể thêm một ảnh chụp màn hình? tôi không thể thấy bất kỳ nút mới nào xuất hiện.
Brabbeldas

@Brabbeldas nút mới có tên "chuyển đổi chế độ kết xuất khung nhìn". Có thể giúp bạn stackoverflow.com/a/30443662/1323374
Ninja

1

Một giải pháp thay thế nhanh khác là tạm thời ẩn các bố cục ở trên cùng để bố cục ở dưới cùng có thể xuất hiện trong cửa sổ hiển thị trong Android Studio.

Đặt android:visibility="gone"trên các bố cục mà bạn muốn ẩn.

Thí dụ:

<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>

Đây là một giải pháp rất khó chịu ... Đừng làm điều này ít nhất là cực kỳ cần thiết.
Joaquin Iurchuk

1
Sử dụng tools:visibility="gone".
dnp

0

Tôi có thể đến muộn nhưng sẽ dễ dàng hơn rất nhiều cho bạn nếu chỉ đặt lề thành âm để chuyển chế độ xem cuộn sang trái.

Ví dụ:

lề:

trái: -100px

Bây giờ bạn có thể xem và chỉnh sửa chế độ xem cuộn theo cách bạn muốn!


0

BẢNG BẢNG

<?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>

0

Điều tốt nhất tôi thấy là đặt thiết bị thành tùy chỉnh. Sau đó, chúng ta có thể thay đổi bố cục đơn giản bằng cách kéo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.