여러분이 대부분의 시간 동안이 유형의 레이아웃을 사용하는지는 모르겠지만 저를 미치게 만듭니다.
예를 들어 화면 중간에 버튼을 놓은 다음 버튼 근처에 텍스트 뷰를 배치하면 갑자기 IDE에서 문자를 다시 정렬하고 textview가 맨 위에 표시되고 오른쪽에 버튼이 표시됩니다.
화면에 너무 많은 요소를 사용하면 문제가 발생할 수 있습니다.
그 이후로 나는 선형 레이아웃을 사용하고 있지만 몇 가지 제한이 있습니다.
고마워, 나는 안드로이드 개발 (배우기 시작한 4 일)이 처음이에요. 그래서 당신들이 저를 도울 수 있기를 바랍니다.Eclipse 상대 레이아웃은 작동하기가 어렵습니다.
답변
상대 레이아웃은 가장 자주 사용되는 레이아웃을 보여줍니다. 실제로 사용자 정의 할 수있는 사실 외에도 (LinearLayout보다 덜 직관적 일 수 있음) 꽤 빠릅니다. "Fast"는 중첩 된 LinearLayouts를 사용할 때 RelativeLayout을 사용하여 피할 수있는 특정 오버 헤드가 있음을 의미합니다. 특히 :
기본 기능에 집착하는 것은 불행하게도 사용자 인터페이스를 만들 수있는 가장 효율적인 방법이 아닙니다. 일반적인 예는 LinearLayout의 남용이며 뷰 계층에서 뷰가 확산됩니다. 응용 프로그램에 을 추가하는 모든보기 - 또는 모든 레이아웃 관리자 -는 초기화, 레이아웃 및 드로잉이 비용이 상승합니다. weight 매개 변수를 사용하는 여러 LinearLayout을 중첩 할 때 자식을 두 번 측정해야하는 경우 레이아웃 패스가 특히 높을 수 있습니다 ( ).
내 경험에 의하면, 당신은 이클립스 드래그 & 드롭 UI 빌더를 사용해서는 안됩니다. 혼란과 문제 만 일으킬 것입니다. 그것은 아직 성숙하지 못했습니다 (지난 몇 년 동안 큰 발전을 이룩 했음에도).
특히 초보자 인 경우 XML로 직접 작업해야합니다. 이렇게하면 레이아웃 메커니즘에 대해 훨씬 더 잘 이해할 수 있습니다. 나는 정말로 ide 빌더와 함께 일하는 한 안드로이드 개발자를 모른다.
활동의 주요 레이아웃으로 RelativeLayout을 사용하는 경우는 거의 없습니다. LinearLayout을 사용하고 android:weightSum
으로 설정하여 앱이 화면을 더 크게 지원할 수 있도록하는 것이 좋습니다. 화면 크기가 다른 Android를 실행하는 다양한 기기가 있다는 것을 알고 계실 것입니다. 고정 된 크기의 특정 위치에서보기를 원할 경우에만 RelativeLayout을 사용하십시오.
당신에 대해 참조로, 많은 요소가있는 활동을 만들은 LinearLayouts를 사용하여이 예를 참조하십시오
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:padding="@dimen/padding_small"
android:weightSum="3"
tools:ignore="HardcodedText" >
<LinearLayout
android:id="@+id/picker_time_hour"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/picker_time_hour_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/hours"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/picker_time_hour_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/picker_time_hour_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:inputType="number" />
<Button
android:id="@+id/picker_time_hour_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="-" />
</LinearLayout>
<LinearLayout
android:id="@+id/picker_time_minute"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/picker_time_minute_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/minutes"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/picker_time_minute_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/picker_time_minute_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:inputType="number" />
<Button
android:id="@+id/picker_time_minute_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="-" />
</LinearLayout>
<LinearLayout
android:id="@+id/picker_time_second"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/picker_time_second_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/seconds"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/picker_time_second_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="+" />
<EditText
android:id="@+id/picker_time_second_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:inputType="number" />
<Button
android:id="@+id/picker_time_second_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/padding_medium"
android:layout_marginRight="@dimen/padding_medium"
android:gravity="center"
android:text="-" />
</LinearLayout>
</LinearLayout>
그리고 그 결과는 다음과 같습니다
당신이 내 의견이 볼 수 있듯이 LinearLayouts를 사용해야하지만, read this topic을 선택하면 도움이됩니다.
덕분에 드래그 앤 드롭 UI 빌더가있는 외부 프로그램이 있으며 XML로 결과가 내보내집니다. 너도 알지? –
[Codiqa] (http://www.codiqa.com/)에 대해 들어 봤지만 무료는 아닙니다. 나는 코드로 레이아웃을 만든다.처음에는 사람들이 드래그 앤 드롭 UI 빌더를 사용하는 경향이 있지만 좀 더 많은 경험이 있으면 코드로 작업하기가 편합니다. 그러나 당신에게 달렸습니다. –
- 1. TabHost의 상대 레이아웃은 무엇입니까?
- 2. 레이아웃은
- 3. 왜 상대 레이아웃은 중간 화면의 모든 사진을 배치합니까?
- 4. 아이폰 레이아웃은
- 5. 페이지 레이아웃은
- 6. Eclipse 및 appengine을 사용하여 web.xml의 상대 경로
- 7. 무료 드래그 앤 드롭 삽입을 제공 할 수있는 레이아웃은 무엇입니까?
- 8. 복제시 조각 모음이 어렵습니다?
- 9. MKAnnotationView - 끌기가 어렵습니다.
- 10. Sunspot Solr 환경이 어렵습니다.
- 11. 프로젝트에서 예외를 제거하기가 어렵습니다.
- 12. Clojure GUI 프로그래밍이 어렵습니다.
- 13. takePicture가 어렵습니다. 3.1
- 14. 이 레이아웃은 CSS로 할 수 있습니까?
- 15. plug-in.xml에서 작업 할 필요없이 Eclipse 플러그인을 작성하십시오.
- 16. 편집 텍스트가 포커스가있는 반면 상대적 레이아웃은 android
- 17. XML의 루트 레이아웃은 무엇입니까?
- 18. 전환 레이아웃은 중복
- 19. 100 % 높이의 테이블 레이아웃은
- 20. 동적 레이아웃은 어떻게합니까?
- 21. 선택할 레이아웃은 무엇입니까?
- 22. 레이아웃은 왜 기본 선택입니까?
- 23. 왜 이클립스 ADT 레이아웃은 사용하기 너무 어렵다?
- 24. 안드로이드 버튼은 2.2에서 타격하기가 어렵습니다.
- 25. MaskedEditExtender가 돈으로 사용하기가 너무 어렵습니다.
- 26. JavaScript에서 변수의 값을 유지하기가 어렵습니다.
- 27. 프롤로그 전문가 시스템이 너무 어렵습니다.
- 28. 종이 클립으로 조건부 확인이 어렵습니다.
- 29. SRP를 사용하면 클래스를 테스트하기가 어렵습니다.
- 30. 사용자 지정 UIButton을 누르기가 어렵습니다.
당신이 옳습니다. 나는 그것이 빠르고, 쉽고, 신뢰할 수있는 Visual Studio UI Editor 유형이 더 많을 것이라고 기대하고있었습니다. –