programing

조각을 사용해야 하는 이유는 무엇이며, 활동 대신 조각을 사용해야 하는 이유는 무엇입니까?

i4 2023. 6. 5. 23:37
반응형

조각을 사용해야 하는 이유는 무엇이며, 활동 대신 조각을 사용해야 하는 이유는 무엇입니까?

API 11은 Android API 11+라는 했습니다.Fragment.

동영상에서 구글은 가능할 때마다(link1, link2) 활동 대신 파편을 사용해야 한다고 제안하지만, 그 이유를 정확히 설명하지는 않았습니다.

fragment의 목적과 일부 가능한 용도(단순 보기/레이아웃으로 쉽게 달성할 수 있는 일부 UI 예제 제외)는 무엇입니까?

제 질문은 파편에 관한 것입니다.

  1. 프래그먼트를 사용하는 목적은 무엇입니까?
  2. 활동/뷰/레이아웃을 사용하는 것과 비교하여 fragment를 사용하는 것의 장점과 단점은 무엇입니까?

보너스 질문:

  1. 조각에 정말 흥미로운 사용법을 알려주실 수 있나요?구글이 동영상에서 언급하지 않은 것들?
  2. 단편과 단편을 포함하는 활동 간에 의사소통하는 가장 좋은 방법은 무엇입니까?
  3. 조각을 사용할 때 기억해야 할 가장 중요한 것은 무엇입니까?당신의 경험으로부터 조언과 경고가 있습니까?

#1 & #2 프래그먼트를 사용하는 목적은 무엇이며, 프래그먼트를 사용하는 활동/이벤트/이벤트를 사용하는 것과 비교하여 프래그먼트를 사용하는 것의 장점과 단점은 무엇입니까?

프래그먼트는 재사용 가능한 사용자 인터페이스를 만드는 Android의 솔루션입니다.활동 및 레이아웃(예: 포함 사용)을 사용하여 동일한 작업을 수행할 수 있습니다.그러나 단편은 Android API, HoneyComb 등에 연결되어 있습니다.자세히 설명하겠습니다.

  • ActionBar앱을 탐색하기 위해 위에 있는 탭을 원하는 경우 빠르게 확인할 수 있습니다.ActionBar.TabListener는 인페이제는하공을 합니다.FragmentTransaction의 입력 로서.onTabSelectedㅠㅠ. 은 아마도 하고, 할 수 하는 것이 아니라 입니다.당신은 아마도 이것을 무시할 수 있고, 다른 영리한 것을 할 수 있지만, 당신은 API를 사용하는 것이 아니라 API를 상대로 작업할 것입니다.

  • FragmentManager매우 영리한 방법으로 "뒤로"를 처리합니다.뒤로 가기는 정규 활동처럼 마지막 활동으로 돌아가는 것을 의미하지 않습니다.그것은 이전의 조각 상태로 돌아간다는 것을 의미합니다.

  • 쿨을 사용할 수 있습니다.ViewPagerFragmentPagerAdapter스와이프 인터페이스를 만듭니다.FragmentPagerAdapter코드는 일반 어댑터보다 훨씬 깨끗하며 개별 fragment의 인스턴스화를 제어합니다.

  • 전화기와 태블릿 모두에 대한 응용 프로그램을 만들 때 Fragments를 사용하면 삶이 훨씬 쉬워집니다.조각들이 허니콤+ API들과 매우 연결되어 있기 때문에, 당신은 코드를 재사용하기 위해 그것들을 전화기에서도 사용하기를 원할 것입니다.여기서 호환성 라이브러리가 유용하게 사용됩니다.

  • 당신은 폰 전용 앱을 위해 단편을 사용할 수도 있고 사용해야 합니다.휴대성을 염두에 두고 있다면요.사용합니다ActionBarSherlock호환성 라이브러리를 사용하여 버전 1.6까지 동일하게 보이는 "ICS looking" 앱을 만들 수 있습니다.다과음같은최기사수있용다습니할능을신▁▁features다와 같은 최신 을 사용할 수 .ActionBar 오버플로, 표시줄, 페이지 등 오로플, 분수표, 보지페등, 기이이있.

보너스 2

조각 간에 의사소통을 하는 가장 좋은 방법은 의도입니다. 때 으로 프그먼에일서호로출하항누때를목을라고 부릅니다.StartActivity()데이터가 포함되어 있습니다.의도는 시작하는 활동의 모든 부분으로 전달됩니다.

어떤 비디오를 말씀하시는 건지 잘 모르겠지만, 직접 교환할 수 있는 것은 아니기 때문에 활동 대신 단편을 사용해야 한다고 말씀하시는 것은 아닌 것 같습니다.개발 가이드에는 실제로 상당히 상세한 항목이 있습니다. 자세한 내용은 이 항목을 참조하십시오.

간단히 말해서, 단편은 활동 내부에 존재하며, 각 활동은 많은 단편을 호스트할 수 있습니다.활동과 마찬가지로, 활동과 달리 특정 라이프사이클이 있으며 최상위 애플리케이션 구성요소가 아닙니다.fragment의 장점으로는 코드 재사용 및 모듈화(예: 많은 활동에서 동일한 목록 보기 사용), 다중 창 인터페이스(주로 태블릿에서 유용함)를 구축할 수 있는 기능 등이 있습니다.주요 단점은 (일부) 복잡성이 추가된다는 것입니다.일반적으로 (사용자 지정) 보기에서 비표준적이고 덜 강력한 방법으로 동일한 작업을 수행할 수 있습니다.

조각은 보다 모듈화된 활동 설계를 가능하게 하는 활동에 배치할 수 있는 응용프로그램의 사용자 인터페이스 또는 동작입니다.우리가 파편이 일종의 부활동이라고 해도 틀리지 않을 것입니다.

다음은 조각에 대한 중요한 사항입니다.

  1. 조각에는 자체 레이아웃과 자체 수명 주기 콜백이 있는 자체 동작이 있습니다.

  2. 활동이 실행되는 동안 활동에서 조각을 추가하거나 제거할 수 있습니다.

  3. 단일 작업에서 여러 조각을 결합하여 다중 창 UI를 구축할 수 있습니다.

  4. 조각은 여러 활동에 사용될 수 있습니다.

  5. 단편 수명 주기는 호스트 활동의 수명 주기와 밀접한 관련이 있습니다.

  6. 활동이 일시 중지되면 활동에서 사용할 수 있는 모든 조각도 중지됩니다.

  7. 조각은 사용자 인터페이스 구성 요소가 없는 동작을 구현할 수 있습니다.

  8. Android 3(Honeycomb)에서 API 버전 11로 Android API에 fragment가 추가되었습니다.

자세한 사항은 공식 사이트인 Fragments를 방문해 주시기 바랍니다.

활동은 도구 모음이 있는 앱의 전체 화면 구성 요소이며, 다른 모든 것은 조각입니다.도구 모음이 있는 하나의 전체 화면 상위 활동에는 여러 개의 창, 스크롤 가능한 페이지, 대화 상자 등(모든 조각)이 있을 수 있으며, 이 모든 작업은 상위에서 액세스하고 상위를 통해 통신할 수 있습니다.

예:

활동 A, 활동 B, 활동 C:

  • 모든 활동은 기본 도구 모음을 표시하거나 상위 활동에서 상속(관리가 번거로워짐)하려면 동일한 코드를 반복해야 합니다.
  • 한 활동에서 다른 활동으로 이동하려면 모든 활동이 메모리(오버헤드)에 있거나 다른 활동이 열리려면 하나를 삭제해야 합니다.
  • 활동 간의 의사소통은 의도를 통해 이루어질 수 있습니다.

활동 A, 단편 1, 단편 2, 단편 3:

  • 코드 반복은 없으며, 모든 화면에는 해당 한 활동의 도구 모음 등이 있습니다.
  • 한 조각에서 다음 조각으로 이동하는 여러 가지 방법 호출기, 다중 창 등.
  • 활동에는 대부분의 데이터가 있으므로, 최소한의 조각 간 통신이 필요합니다.여전히 필요한 경우 인터페이스를 통해 쉽게 수행할 수 있습니다.
  • 조각들은 전체 화면일 필요가 없고, 그것들을 디자인할 때 많은 유연성이 있습니다.
  • 뷰가 필요하지 않은 경우에는 조각이 레이아웃을 부풀릴 필요가 없습니다.
  • 여러 활동에서 동일한 조각을 사용할 수 있습니다.

다음은 단편에서 찾은 중요한 정보입니다.

지금까지 Android 앱의 각 화면은 별도의 활동으로 구현되었습니다.Android Intent 메커니즘은 활동 간에 참조 유형(즉, 개체)을 직접 전달할 수 없기 때문에 화면 간에 정보를 전달하는 데 어려움이 있습니다.대신 개체를 직렬화하거나 전역적으로 액세스할 수 있는 참조를 사용할 수 있어야 합니다.

각 화면을 별도의 조각으로 만들어 이러한 데이터 전달 문제를 완전히 방지합니다.조각은 항상 지정된 활동의 컨텍스트 내에 존재하며 항상 해당 활동에 액세스할 수 있습니다.관심 정보를 활동 내에 저장하면 각 화면의 단편이 활동을 통해 개체 참조에 액세스할 수 있습니다.

출처: https://www.pluralsight.com/blog/software-development/android-fragments

조각은 모든 페이지에서 탐색 드로어를 보관하려는 경우와 같은 경우에 특히 유용합니다.원하는 조각으로 프레임 레이아웃을 확장할 수 있으며 탐색 드로어에 액세스할 수 있습니다.

활동을 사용했다면 중복 코드를 만드는 모든 활동에서 드로어를 유지해야 했습니다.이것은 조각의 흥미로운 사용법 중 하나입니다.

저는 안드로이드가 처음이라 아직도 단편이 이런 식으로 도움이 된다고 생각합니다.

이미 죽을 때까지 논의된 것은 알지만, 몇 가지 더 추가하고 싶습니다.

  • 플래그는 채우기에 사용할 수 있습니다.Menu는 처리할 수 .MenuItem스스로 클릭합니다.따라서 활동에 대한 추가 변조 옵션을 제공합니다.상황별 수행 표시줄 작업은 활동에 대한 정보 없이 수행할 수 있으며 기본적으로 활동이 처리하는 기본 작업(내비게이션/설정/정보)과 분리할 수 있습니다.

  • 하위 플래그가 있는 상위 플래그는 구성 요소를 모듈화하는 추가 옵션을 제공할 수 있습니다.예를 들어 플래그를 쉽게 바꾸거나, 새 플래그를 호출기에 넣거나, 제거하거나, 다시 정렬할 수 있습니다.활동에 대해 아무것도 알지 못한 채 더 높은 수준의 것에만 집중합니다.

Fragment활동이 복합 재료(의이 나무)의 숲에서 맨 위에 있는 동안 ui 요소의 복합 트리에서 비루트 구성 요소로 생각할 수 있습니다.

  • 사용하지 않을 의 경험칙Fragment조각이 충돌하는 속성을 가지고 있는 경우입니다. 예를 들어, 조각은 몰입형이거나 다른 스타일을 모두 사용하고 있거나 다른 구조적/논리적 차이가 있으며 기존 트리에 균일하게 맞지 않을 수 있습니다.

  • 언제 선호할지에 대한 경험의 법칙Activity1파운드가 Fragment작업(또는 일관성 있는 작업 세트)이 완전히 독립적이고 재사용 가능하며 일부 무거운 역기 들기 작업을 수행하며 다른 부모-자녀 복합물에 적합하도록 추가 부담을 주지 않아야 하는 경우입니다(SRP 위반, 두 번째 책임은 복합물을 준수하는 것입니다).예를 들어, a의 경우MediaCaptureActivity오디오, 비디오, 사진 등을 캡처하고 편집, 노이즈 제거, 사진의 주석 등을 허용합니다.이 활동/모듈에는 보다 세분화된 작업을 수행하고 공통 디스플레이 테마를 준수하는 하위 조각이 있을 수 있습니다.

프래그먼트는 활동 내에 존재하며 다음을 가집니다.

  • 그 자체의 라이프사이클
  • 그 자체의 배치.
  • 그 자신의 아이 조각 등.

조각을 주 활동의 하위 활동으로 생각합니다. 조각 자체는 존재할 수 없으며 반복해서 호출/재사용할 수 있습니다.이것이 도움이 되길 바랍니다 :)

활동 자체가 존재하는 반면, 활동 내부에는 단편이 존재합니다.

프론트엔드를 작성한 적이 있는 경우 프론트엔드 구성 요소(예: 반응, 값 또는 각도)를 사용합니다.활동 내 재사용 가능한 구성요소와 같은 조각을 생각해 보십시오.

1. 프래그먼트를 사용하는 목적은?

  • 응답:
    1. 장치 폼-팩터 차이를 처리합니다.
    2. 앱 화면 간에 정보를 전달하는 중입니다.
    3. 사용자 인터페이스 구성.
    4. 고급 UI 비유입니다.

왜 파편일까요?

대부분의 활동 사용 사례를 대체하기 위해 조각이 만들어졌습니다.Android Dev Summit 세션을 참조하십시오.

활동 대신 단편을 사용할 때는 언제입니까?

활동 중에만 사용할 수 있는 API가 필요한 경우를 제외하고는 항상 필요합니다.

언급URL : https://stackoverflow.com/questions/10478233/why-fragments-and-when-to-use-fragments-instead-of-activities

반응형