Tidak dapat melihat tata letak tampilan lengkap di Android Studio

91

Saya membuat LinearLayout vertikal yang akan ditampilkan dalam ScrollView vertikal. Saya tidak dapat menemukan cara di Android Studio untuk melihat bagian LinearLayout yang berada di bawah bagian bawah ScrollView. Apakah ada cara untuk melihat tata letak lengkap daripada membatasinya ke area pandang yang disediakan oleh perender?

menggambar
sumber

Jawaban:

66

Seperti yang dikatakan Drew, membuat definisi perangkat yang ditentukan pengguna telah menjadi satu-satunya solusi yang berhasil untuk saya. Di bawah ini saya tunjukkan langkah-langkah untuk diikuti:

Langkah 1) Di dalam panel pratinjau, buka drop-down Pemilihan Perangkat Virtual dan pilih Tambahkan Definisi Perangkat ..

masukkan deskripsi gambar di sini

Langkah 2) Dalam dialog Perangkat Virtual Anda klik tombol Buat Perangkat Virtual .

masukkan deskripsi gambar di sini

Langkah 3) Dalam dialog Select Hardware klik tombol New Hardware Profile .

masukkan deskripsi gambar di sini

Langkah 4) Dalam dialog Configure Hardware Profile tentukan (fe) Resolusi 720 x 4000 px dan Screensize 12 inci. Juga pengaturan hasil screensize dalam kepadatan dari xhdpi (terima kasih kepada Mete).

masukkan deskripsi gambar di sini

Langkah 5) Tutup semua dialog dan mulai ulang Android Studio. Langkah 6) Buka drop-down Virtual Device Selection . Profil perangkat keras yang ditentukan pengguna baru dapat ditemukan di Ponsel dan Tablet Generik . masukkan deskripsi gambar di sini

Brabbeldas
sumber
1
Terima kasih atas jawaban Anda dengan semua gambar dan deskripsi bermanfaat
Roozbeh Zabihollahi
tidak dapat melihat tempat untuk menambah ketinggian
Lasitha Lakmal
37

Saya baru saja menemukan caranya. Anda perlu membuat definisi perangkat yang ditentukan pengguna di Android AVD - Saya membuat definisi yang berukuran 480 x 4000 piksel. Keluar dan mulai ulang Android Studio lalu Anda dapat memilih perangkat ini di perender pratinjau dan dapat melihat LinearLayout senilai 4000 piksel.

menggambar
sumber
+1 karena saya tidak membongkar pandangan saya dan untuk menyatakan perlunya restart.
Iain Smith
Ini adalah satu-satunya solusi yang cocok yang saya temukan sejauh ini. Ada satu masalah; Android Studio, saat menggunakan resolusi ini, secara otomatis menyetel kepadatan ke xxxhdpi. Apakah ada cara untuk mengatur kerapatan kembali ke hdpi? Saya menggunakan Android Studio v1.2
Brabbeldas
2
@Brabbeldas saat Anda membuat profil, Anda dapat memberikan lebar dan tinggi dalam piksel, tetapi Anda juga dapat memberikan "Screensize" dalam inci, dan kombinasi pengaturan ini mengatur kepadatan. Misalnya saya menetapkan milik saya ke 480x4000 dengan screensize 16 inci dan ini memberi saya hdpi
Mete
Saya telah menambahkan jawaban baru dengan tangkapan layar yang menjelaskan cara membuat definisi perangkat yang ditentukan pengguna. @Drew, jika Anda merasa itu berguna untuk orang lain, Anda dapat menerima itu sebagai jawaban yang benar.
Brabbeldas
Hebat! Bagi saya, mengubah ukuran sekali tidak berhasil! Dan jawaban di bawah stackoverflow.com/a/31582758/1752988 Juga sangat membantu!
Randika Vishman
31

Temukan solusi yang lebih mudah , dalam layouttambahkan sesuatu seperti di bawah ini dan sesuaikan sesuai kebutuhan:

android:layout_marginTop="-1500dp"
Tiago Pádua
sumber
17
Jawaban terbaik, tetapi akan lebih baik jika Anda menggunakan: tools: layout_marginTop = "- 1500dp". Dengan cara ini, gulungan negatif hanya berlaku untuk editor tata letak dan tidak pada waktu proses.
Leandro Glossman
Berguna jika tombol yang disebutkan oleh @Eric tidak tersedia.
Chintan Shah
19

di versi baru android studio (saya tidak tahu dari versi mana, tapi saya menggunakan versi terbaru 2.3.3 sekarang) Anda dapat mengubah ukuran tata letak pratinjau Anda dengan menyeretnya

masukkan deskripsi gambar di sini

Nabil Baadillah
sumber
7
+1 berfungsi untuk saya, tetapi harus mengubah perangkat di gif di atas dari nexus 4 ke "Kustom" secara manual agar tombol seret ditampilkan.
Songo
17

Android Studio akan menawarkan tampilan penuh yang dapat dialihkan, jika ScrollView adalah root dari tata letak. Saya telah meletakkan milik saya di atas RelativeLayout default dan harus memperbaikinya secara manual di XML sebelum GUI memberi saya tampilan penuh.

davidgro.dll
sumber
Bagaimana Anda menemukan ini?
mszaro
1
@MattSzaro Saya tidak ingat di mana saya menemukan informasinya, tetapi jika Anda bermaksud di mana menemukan XML untuk mengubahnya sehingga scrollview adalah item root, ada dua tab di bagian bawah saat Anda membuka .xml untuk melihat: "Desain", dan "Teks". Klik "Teks". Jika Anda bermaksud menemukan sakelar setelah Anda membuat perubahan, saya pikir Anda perlu menutup dan membuka kembali proyek sekali (mungkin) dan kemudian di "Desain" itu adalah tombol paling kiri di baris kedua bilah alat, dengan ikon yang terlihat seperti selembar kertas tiga kolom atau sesuatu: "Toggle Viewport Render Mode".
davidgro
1
@davidgro, menemukan opsi di bilah alat adalah apa yang saya cari. Terima kasih! Ini sangat membantu.
mszaro
1
Dikombinasikan dengan teknik dalam " Menggunakan Kembali Tata Letak dengan<include/> ", kita dapat mengekstrak a ScrollViewdi tengah tata letak ke file XML terpisah dan melihatnya secara penuh.
Pang
Bagaimana jika tampilan gulir Anda bukan tampilan root. Berharap mereka akan memperluas keseluruhan hal yang berdarah dan hanya meletakkan garis besar layar ponsel di atas untuk menunjukkan area yang dapat dilihat.
JPM
17

Saya harap tangkapan layar membantu Anda:

tangkapan layar

Eric JOYÉ
sumber
4
kehilangan tombol ini ketika saya mengklik scrollView saya di Component Tree
user3491799
8
Baru saja menemukan bahwa scrollview harus menjadi lapisan atas untuk menampilkan tombol. Thx Eric!
pengguna3491799
Opsi tampilan penuh memecahkan masalah saya untuk tampilan gulir vertikal, namun saya memiliki tampilan gulir Horizontal tertanam yang masih hanya terlihat sebagian, (sisanya meluas ke kanan keluar dari tampilan) Apakah ada cara untuk menyelesaikan ini tanpa menggunakan opsi Perangkat khusus ?
Essah
1
Inilah jawaban yang tepat. itu lebih baik daripada profil perangkat yang sangat tinggi. dan tersedia di studio android 0.1.7+
Ninja
12

Anda dapat menggunakan atribut scrollY untuk menggulir ScrollView di pratinjau. Menggunakan atribut scrollY dengan namespace alat hanya akan menggulir tampilan di tampilan dan bukan di aplikasi sebenarnya. Dan pastikan Anda menggunakan px sebagai unit dengan atribut scrollY.

tools:scrollY="150px"
Rakshit Tanti
sumber
5

Pembaruan: Sekarang Anda dapat menggulir ScrollView langsung di dalam panel pratinjau (saya uji pada Android studio versi 2.3.2)

Jawaban singkat: Klik kanan pada ScrollView Anda dan pilih Refactor> Extract> Layout .

Android-studio akan mengekstrak ScrollView Anda menjadi file tata letak baru dan meletakkan tools:showIn="@layout/original_layout_file"atribut pada tata letak root (ScrollView Anda).

Catatan: Android-studio akan mempratinjau tata letak penuh jika tata letak root adalah ScrollView.

Momepukku
sumber
1
@Tequilaman Jika Anda menggunakan Android studio versi 2.3.2 Anda dapat menggulir konten ScrollView dengan menggunakan roda mouse pada panel pratinjau
Momepukku
4

Di Android Studio versi 3.2.1 Anda dapat memilih perangkat "Kustom" pada panel pratinjau dan kemudian mengubah ukuran pratinjau ke ketinggian berapa pun yang Anda butuhkan.

contoh pratinjau kustom android studio

seyedrezafar
sumber
1
ini cara termudah! terbaik.
Noor Hossain
2
  • klik scrollView di pohon konponen (di sebelah kanan)
  • klik tombol baru yang muncul di sebelah kiri (baris kedua dari toolbar)
Eric JOYÉ
sumber
1
bisakah Anda menambahkan tangkapan layar? saya tidak bisa melihat tombol baru muncul.
Brabbeldas
@Brabbeldas tombol baru yang disebut "toggle viewport render mode" .mungkin membantu Anda stackoverflow.com/a/30443662/1323374
Ninja
1

Solusi alternatif cepat lainnya adalah menyembunyikan sementara tata letak di bagian atas sehingga tata letak di bagian bawah dapat muncul di jendela yang terlihat di Android Studio.

Pakai android:visibility="gone"tata letak yang ingin Anda sembunyikan.

Contoh:

<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>
BlueDroidy
sumber
Ini adalah solusi yang sangat tidak nyaman ... Jangan lakukan ini setidaknya sangat diperlukan.
Joaquin Iurchuk
1
Gunakan tools:visibility="gone".
dnp
0

Saya mungkin terlambat tetapi akan jauh lebih mudah bagi Anda untuk hanya mengatur margin ke negatif untuk menggeser tampilan gulir ke kiri.

Sebagai contoh:

batas:

kiri: -100px

Sekarang Anda dapat melihat dan mengedit tampilan gulir sesuka Anda!

Mak Khan
sumber
0

TATA LETAK TABEL

<?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>
Harsha
sumber
0

Yang terbaik yang saya temukan adalah mengatur perangkat ke kustom. Kemudian kita bisa mengubah layout hanya dengan drag.

Bibin Johny
sumber
0

Tata letak saya panjang dan perlu menggulir tata letak bahkan menggunakan resolusi panjang vertikal dan ketika saya mengatur editor tata letak ke resolusi tinggi, layar tidak menggulir sepenuhnya dan mulus

Dengan mengatur tata letak ke 3.2_HVGA_slider_ADP1_API_27 , layar digulir dan masalah saya terpecahkan

ZIRES
sumber