Android Studio에서 완료된보기 레이아웃을 볼 수 없습니다.


91

세로 ScrollView에 표시 될 세로 LinearLayout을 만들고 있습니다. Android Studio에서 ScrollView 하단 아래에있는 LinearLayout 부분을 볼 수있는 방법을 찾을 수 없습니다. 렌더러에서 제공하는 뷰포트로 제한하지 않고 전체 레이아웃을 볼 수있는 방법이 있습니까?

답변:


66

Drew가 말했듯이 사용자 정의 장치 정의를 만드는 것이 저에게 도움이 된 유일한 솔루션이었습니다. 아래에서 따라야 할 단계를 보여줍니다.

1 단계) 미리보기 창에서 가상 장치 선택 드롭 다운을 열고 장치 정의 추가를 선택합니다 .

여기에 이미지 설명 입력

2 단계) Your Virtual Devices 대화 상자에서 Create Virtual Device 버튼을 클릭합니다.

여기에 이미지 설명 입력

3 단계) 하드웨어 선택 대화 상자에서 새 하드웨어 프로필 버튼을 클릭합니다.

여기에 이미지 설명 입력

4 단계) 하드웨어 프로필 구성 대화 상자에서 해상도 720 x 4000 픽셀과 화면 크기 12 인치를 지정합니다. 또한 Screensize를 설정하면 밀도xhdpi가됩니다 (Mete 덕분에).

여기에 이미지 설명 입력

5 단계) 모든 대화 상자를 닫고 Android Studio를 다시 시작합니다. 6 단계) 가상 장치 선택 드롭 다운을 엽니 다 . 새로운 사용자 정의 하드웨어 프로필은 Generic Phones and Tablets 에서 찾을 수 있습니다 . 여기에 이미지 설명 입력


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 프로필을 만들 때 너비와 높이를 픽셀 단위로 지정할 수 있지만 "화면 크기"를 인치 단위로 지정할 수도 있으며 이러한 설정의 조합이 밀도를 설정합니다. 예를 들어 화면 크기가 16 인치 인 480x4000으로 설정하면 hdpi가 나옵니다.
Mete

사용자 정의 장치 정의를 만드는 방법을 설명하는 스크린 샷과 함께 새로운 답변을 추가했습니다. @Drew, 다른 사람에게 유용하다고 생각되면 정답으로 받아 들일 수 있습니다.
Brabbeldas

훌륭한! 나를 위해 한 번 크기 조정이 작동하지 않았습니다! 그리고 다음 답변 stackoverflow.com/a/31582758/1752988 또한 도움이되었습니다!
Randika Vishman 2016

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

Android Studio는 ScrollView가 레이아웃의 루트 인 경우 전환 가능한 전체보기를 제공합니다. 기본 RelativeLayout 위에 내 것을 놓고 GUI가 전체보기를 제공하기 전에 XML에서 수동으로 수정해야했습니다.


이것을 어떻게 찾습니까?
mszaro

1
@MattSzaro 정보를 어디에서 찾았는지 기억이 나지 않지만 변경할 XML을 찾을 수있는 위치를 의미하므로 scrollview가 루트 항목 인 경우보기를 위해 .xml을 열 때 하단에 두 개의 탭이 있습니다. "디자인"및 "텍스트". "텍스트"를 클릭합니다. 변경 한 후 토글을 찾을 위치를 의미하는 경우 프로젝트를 한 번 (아마도) 닫았다가 다시 열어야한다고 생각합니다. 그런 다음 "디자인"에서 아이콘이있는 도구 모음의 두 번째 행에있는 가장 왼쪽 버튼입니다. 3 열로 된 종이처럼 보이는 것입니다 : "Toggle Viewport Render Mode".
davidgro

1
@davidgro, 도구 모음에서 옵션을 찾는 것이 내가 찾던 것입니다. 감사합니다! 이것은 정말 도움이되었습니다.
mszaro

1
" Re-using Layouts with<include/> " 의 기술과 결합 하여 레이아웃ScrollView 중간에있는를 별도의 XML 파일로 추출하여 전체를 볼 수 있습니다.
Pang

스크롤 뷰가 루트 뷰가 아니라면 어떻게 될까요? 피 묻은 부분을 확장하고 볼 수있는 영역을 표시하기 위해 전화기 화면의 윤곽선을 맨 위에 놓기를 바랍니다.
JPM

17

스크린 샷이 도움이 되었기를 바랍니다.

스크린 샷


4
내가 구성 요소 트리 내있는 ScrollView 클릭 할 때이 버튼을 누락
user3491799

8
버튼을 표시하려면 scrollview가 최상위 레이어 여야합니다. 에릭!
user3491799

전체보기 옵션은 세로 스크롤보기에 대한 내 문제를 해결하지만 여전히 부분적으로 만 보이는 내장 된 가로 스크롤보기가 있습니다. ?
Essah

1
이것이 완벽한 답입니다. 그것은 매우 높이 장치 프로파일보다 낫습니다. Android 스튜디오 0.1.7 이상에서 사용할 수 있습니다.
Ninja

12

scrollY 속성을 사용하여 미리보기에서 ScrollView를 스크롤 할 수 있습니다. 도구 네임 스페이스와 함께 scrollY 속성을 사용하면 실제 앱이 아닌 디스플레이의보기 만 스크롤됩니다. 그리고 scrollY 속성이있는 단위로 px를 사용해야합니다.

tools:scrollY="150px"

5

최신 정보: 이제 미리보기 패널 내에서 직접 ScrollView를 스크롤 할 수 있습니다 (Android 스튜디오 버전 2.3.2에서 테스트했습니다).

간단한 대답 : ScrollView를 마우스 오른쪽 버튼으로 클릭하고 Refactor> Extract> Layout을 선택합니다. 합니다.

Android-studio는 ScrollView를 새 레이아웃 파일로 추출하고 tools:showIn="@layout/original_layout_file" 속성을 루트 레이아웃 (ScrollView)에 .

참고 : Android-studio는 루트 레이아웃이 ScrollView 인 경우 전체 레이아웃을 미리 봅니다.


1
@Tequilaman은 안드로이드 스튜디오 버전 2.3.2을 사용하는 경우에는 미리보기 패널에 마우스 휠을 사용하여있는 ScrollView의 내용을 스크롤 할 수 있습니다
Momepukku

4

Android Studio 버전 3.2.1에서는 미리보기 패널에서 '사용자 지정'기기를 선택한 다음 필요한 높이로 미리보기 크기를 조정할 수 있습니다.

안드로이드 스튜디오 커스텀 미리보기 예제


1
이것이 가장 쉬운 방법입니다! 베스트.
Noor Hossain

2
  • conponent 트리 (오른쪽)에서 scrollView를 클릭합니다.
  • 왼쪽에 나타나는 새 버튼을 클릭합니다 (도구 모음의 두 번째 행).

1
스크린 샷을 추가 할 수 있습니까? 새 버튼이 표시되지 않습니다.
Brabbeldas

새로운 버튼은 .maybe 도움 "토글 뷰포트하는 렌더링 모드"라는 @Brabbeldas 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>

이것은 매우 불편한 해결책입니다 ... 최소한이 작업은 매우 필요합니다.
Joaquin Iurchuk 2015

1
사용 tools:visibility="gone".
dnp 2013-04-21

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 로 설정하면 화면이 스크롤되고 내 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.