Не вдається побачити завершений макет подання в Android Studio


91

Я створюю вертикальний LinearLayout, який відображатиметься у вертикальному ScrollView. Я не можу знайти спосіб в Android Studio побачити частину LinearLayout, яка знаходиться внизу ScrollView. Чи є спосіб побачити повний макет, а не обмежити його для області перегляду, наданої візуалізатором?

Відповіді:


66

Як сказав Дрю, створення визначеного користувачем визначення пристрою було єдиним рішенням, яке працювало для мене. Нижче я покажу вам кроки:

Крок 1) На панелі попереднього перегляду відкрийте спадне меню Вибір віртуального пристрою та виберіть Додати визначення пристрою.

введіть тут опис зображення

Крок 2) У діалоговому вікні " Ваші віртуальні пристрої" натисніть кнопку " Створити віртуальний пристрій" .

введіть тут опис зображення

Крок 3) У діалоговому вікні Вибір обладнання натисніть кнопку Новий профіль обладнання .

введіть тут опис зображення

Крок 4) У діалоговому вікні Налаштування апаратного профілю вкажіть (fe) роздільну здатність 720 x 4000 px та розмір екрана 12 дюймів. Також установка результати в Розмір екрану щільності від xhdpi (завдяки Мете).

введіть тут опис зображення

Крок 5) Закрийте всі діалогові вікна та перезапустіть Android Studio. Крок 6) Відкрийте спадне меню Вибір віртуального пристрою . Новий апаратний профіль, визначений користувачем, можна знайти в розділі Загальні телефони та планшети . введіть тут опис зображення


1
Дякую за вашу відповідь із усіма зображеннями та корисними описами
Рузбех Забіхоллахі

не бачу місця для додавання висоти
Lasitha Lakmal

37

Я щойно дізнався, як. Вам потрібно створити визначену користувачем роздільну здатність пристрою в Android AVD - я створив таку, яка була 480 x 4000 пікселів. Вийдіть і перезапустіть Android Studio, після чого ви зможете вибрати цей пристрій у візуалізаторі попереднього перегляду та побачити LinearLayout на 4000 пікселів.


+1, оскільки я не мав розібрати свій погляд і про необхідність перезапуску.
Iain Smith

Це єдине підходяще рішення, яке я знайшов на сьогодні. Є одна проблема; При використанні цієї роздільної здатності Android Studio автоматично встановлює щільність xxxhdpi. Чи є спосіб повернути щільність до hdpi? Я використовую Android Studio v1.2
Brabbeldas

2
@Brabbeldas, коли ви створюєте профіль, ви можете вказати ширину та висоту в пікселях, але ви також можете вказати "Розмір екрану" в дюймах, а комбінація цих параметрів задає щільність. Наприклад , я встановити міну 480x4000 з 16 розміру екрану дюймів , і це дає мені ІПЧР
Мете

Я додав нову відповідь із скріншотами, що описують, як створити визначене користувачем визначення пристрою. @Drew, якщо ти вважаєш це корисним для інших, ти можеш прийняти це як правильну відповідь.
Brabbeldas

Чудово! Для мене колись розмір не працював! І відповідь нижче stackoverflow.com/a/31582758/1752988 Також був корисним!
Randika Vishman

31

Ви знайшли простіше рішення , layoutдодавши щось на зразок нижче та налаштувавши, як вам потрібно:

android:layout_marginTop="-1500dp"

17
Найкраща відповідь, але було б краще, якщо ви використовуєте: tools: layout_marginTop = "- 1500dp". Таким чином, негативна прокрутка застосовується лише до редактора макета, а не під час виконання.
Леандро Глоссман

Корисно, коли кнопка, згадана @Eric, недоступна.
Чінтан Шах

19

в новій версії android studio (я не знаю, з якої версії, але зараз я використовую останню версію 2.3.3), ви можете змінити розмір попереднього перегляду, перетягнувши його

введіть тут опис зображення


7
+1 працював у мене, але довелося змінити пристрій у наведеному вище gif з nexus 4 на "Спеціальний" вручну, щоб показати кнопку перетягування.
Сонго

17

Android Studio запропонує повний перегляд із можливістю перемикання, якщо ScrollView є коренем макета. Я розмістив свою версію за замовчуванням RelativeLayout і повинен був вручну виправити це в XML, перш ніж графічний інтерфейс дасть мені повний огляд.


Як ти це знайдеш?
mszaro

1
@MattSzaro Я не пам'ятаю, де я знайшов інформацію, але якщо ви маєте на увазі, де знайти XML, щоб змінити його, щоб прокрутка була кореневим елементом, внизу є дві вкладки, коли ви відкриваєте .xml для подання: "Дизайн" та "Текст". Клацніть «Текст». Якщо ви маєте на увазі, де знайти перемикач після внесення змін, я думаю, вам потрібно один раз (можливо) закрити та знову відкрити проект, а потім у "Дизайн" це крайня ліва кнопка у другому рядку панелі інструментів із піктограмою що виглядає на аркуші паперу з трьох колон або щось подібне: "Перемкнути режим візуалізації в області перегляду".
davidgro

1
@davidgro, пошук параметра на панелі інструментів - це те, що я шукав. Дякую! Це справді допомогло.
mszaro

1
У поєднанні з технікою в " Повторне використання макетів з<include/> " ми можемо витягти a ScrollViewпосередині макета в окремий XML-файл і переглянути його повністю.
Панг

Що робити, якщо ваше прокручування не є кореневим. Побажайте, щоб вони розширили всю криваву справу і просто розмістили контур екрану телефону зверху, щоб показати видиму область.
JPM

17

Сподіваюся, скріншот допоможе вам:

скріншот


4
відсутня ця кнопка, коли я натискаю на прокрутку Перегляд на дереві компонентів
user3491799

8
Щойно виявив, що прокрутка повинна бути верхнім шаром, щоб показати кнопку. Thx Ерік!
user3491799

Варіант повного перегляду вирішує мою проблему з вертикальними прокрутками, однак у мене є вбудований горизонтальний прокручування, який все ще видно лише частково, (решта поширюється праворуч поза полем зору) Чи є спосіб вирішити це питання, не використовуючи спеціальний пристрій ?
Essah

1
Це ідеальна відповідь. це краще, ніж профіль пристрою на самій висоті. і доступний в android studio 0.1.7+
Ninja

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

Примітка: Android-studio попередньо перегляне повний макет, якщо кореневим макетом є ScrollView.


1
@Tequilaman Якщо ви використовуєте Android studio версії 2.3.2, ви можете прокручувати вміст ScrollView, використовуючи коліщатко миші на панелі попереднього перегляду
Momepukku,

4

У Android Studio версії 3.2.1 ви можете вибрати "Спеціальний" пристрій на панелі попереднього перегляду, а потім змінити розмір попереднього перегляду на потрібну вам висоту.

Приклад користувацького попереднього перегляду Android Studio


1
це найпростіший спосіб! найкраще.
Нур Хоссен

2
  • клацніть на scrollView у дереві компонентів (праворуч)
  • натисніть на нову кнопку, яка з'явиться зліва (другий рядок панелі інструментів)

1
Ви могли б додати знімок екрана? я не бачу жодної нової кнопки.
Браббельдас

@Brabbeld - нова кнопка під назвою "перемкнути режим візуалізації в області перегляду". Може допомогти вам stackoverflow.com/a/30443662/1323374
Ніндзя

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>

Це дуже незручне рішення ... Не робіть цього принаймні вкрай необхідно.
Хоакін Ірчук

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>

0

Найкраще, що я знайшов, - це налаштувати пристрій на замовлення. Тоді ми можемо змінити макет, просто перетягнувши.


0

Мій макет довгий, і його потрібно прокручувати, навіть використовуючи вертикальну довгу роздільну здатність і коли я встановлюю редактор макета на високу роздільну здатність, екран не прокручується повністю та плавно

Встановивши макет на 3.2_HVGA_slider_ADP1_API_27 , екран прокручувався, і моя проблема була вирішена

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.