왜 Android Fragments를 사용합니까?


15

나는 이 주제에 관한 문서와 다른 질문의 스레드를 읽었 으며 실제로 확신하지 않습니다. 이 기술의 사용 한계가 명확하게 보이지 않습니다.

조각은 이제 모범 사례 로 간주됩니다 . 모든 활동은 기본적으로 하나 이상의 조각을 지원해야하며 레이아웃을 직접 호출하지 않아야합니다.

단편은 다음을 위해 작성됩니다.

  1. (가) 허용 Activity이 장치를 재사용, 그들 사이에서 변경할 수 많은 조각을 사용하는 ... ==>는이 Fragment받는 전적으로 의존 Context내가 할 수있는, 나는 많은 활동에서 내가 다시 사용할 수있는 일반적이고 핸들 뭔가가 필요 그렇다면, 활동의 나만의 커스텀 레이아웃 또는 뷰 만들기 ... 프래그먼트가 추가 할이 추가 복잡성 개발 레이어는 신경 쓰지 않습니다.

  2. 다른 해상도에 대한 더 나은 처리 ==> 긴 프로세스의 경우 태블릿 / 전화에서 동일한 활동에서 두 개 (또는 그 이상)의 조각을 태블릿에서 하나씩, 전화에서 하나씩 표시 할 수 있습니다. 그러나 왜 항상 조각을 사용 합니까?

  3. 프래그먼트 간 탐색을위한 콜백 처리 (예 : 사용자가 로그인 한 경우 프래그먼트를 표시하고 다른 프래그먼트를 표시합니다). ===> 페이스 북 SDK 로그인으로 인해 버그가 얼마나 많은지 확인하여 실제로 (?)인지 이해하십시오 ...

  4. 안드로이드 애플리케이션이 액티비티를 기반으로한다는 점을 고려하면 액티비티에 다른 라이프 사이클을 추가하는 것이 애플리케이션을 디자인하는 것이 좋습니다 ... 모듈, 시나리오, 데이터 관리 및 연결이 더 잘 설계된다는 의미입니다. 방법. ===> 이것은 Fragments 비전으로 Android SDK 및 Android Framework를 보는 데 익숙한 사람의 답변입니다. 나는 그것이 틀렸다고 생각하지 않지만 그것이 좋은 결과를 줄 것이라고 확신하지 못한다 ... 그리고 그것은 정말로 추상적이다 ...

====> 왜 항상 내 삶을 사용하면서 더 많은 코딩을하면서 인생이 복잡해 집니까? 그렇지 않으면 어떤 경우에 대한 도구 일 때 왜 가장 좋은 방법입니까? 이 경우는 무엇입니까?


1
당신이 무엇을 묻고 있는지 확실하지 않습니다. 아마도 장점을 열거하고 각각에 대한 당신의 비판 아래 질문을 요약 해 주시겠습니까?
logc

자세한 질문을 추가했습니다.
ahmed_khan_89

@logc처럼 길을 잃었습니다. 조각없이 이러한 사례를 어떻게 처리 하시겠습니까?
neontapir

나는 Fragments없이 내가 할 일을 주었다 : (1) 커스텀 제네릭 컨트롤을 생성하고 원하는 곳에서 재사용하십시오 (2) 2 개의 활동을 사용하고 startActivityForResult로 탐색하거나 단순히 뷰간 변경 (표시 / 숨기기, 팽창 / 제거 ...) 너무 코딩하지 않고 ... (3) 뷰가있는 액티비티에서도 콜백을 사용할 수 있습니다. (4)이 주제를 논의 할 때 항상 얻을 수있는 추상적 답변입니다. 더 자세한 설명이 필요합니다 ...
ahmed_khan_89

1
흠. 이 Q & A는 원본 포스터가 "최고의"답변을 선택하는 stackexchange 디자인의 한계를 보여줍니다. (모든 사람이 투표하는 slant.co와는 반대입니다.) 이와 같은 광범위한 질문에는 적합하지 않습니다. 여기서 모호한 질문은 그 질문에 응한 사람이 듣고 싶어하는 대답에 명백하게 동의합니다. 상황에 따라 조각 을 사용할 이유가 없다면 그렇게하지 마십시오. 더 좋은 질문은 단편활동의 장단점을 요청하는 것 입니다. 그리고 그 정확한 주제에는 많은 스레드가 있습니다.
ToolmakerSteve

답변:


5

조각 은 자체 수명주기가있는 활동의 모듈 식 섹션으로, 활동이 실행되는 동안 추가하거나 제거 할 수있는 자체 입력 이벤트를 수신합니다 (다른 활동에서 재사용 할 수있는 "하위 활동"과 유사 함).

프래그먼트를 사용하는 것의 명백한 이점, 다른 화면에서의 UI 최적화 외에도 눈에 띄는 사용자 인터페이스 구성 요소없이 활동의 ​​백그라운드 처리를 관리 할 수 ​​있습니다.

지금...

====> 왜 내 인생을 더 복잡하게 만들고 더 많이 코딩하겠습니까?

권장 사항이지만 개별 요소의 수명주기를 제어하거나 이전 상태의 스택 상태 또는 기록을 재사용하려는 경우가 아니면 필요하지 않습니다.


5

단편 회의론자에 대한 "게이트웨이"사용 사례가 있다면 아마도 대화 상자 일 것입니다. 오랫동안 사용되지 않는 방법 showDialog(...), onCreateDialog(...)등, 프레임 워크가 자동으로 파괴하고 호스팅 활동을 파괴하고 다시 때 귀하의 대화 상자를 다시 그들에게 전화 것이라고에서 좋은했다. 직접 대화 상자를 만들면 모든 것을 직접 관리해야합니다. 그러나를 사용 DialogFragment하면 프레임 워크에서 다시 관리하도록 할 수 있습니다. 이 경우 조각은 코딩을 크게 단순화 할 수 있습니다 .


1

1 년 전에이 질문을했습니다.

나는 매일 조각을 사용하고 있으며 그것을 추천 할 것입니다.

우선, 조각을 사용하는 것이 옵션 일 뿐이며 일단 조각을 사용하기 시작하면 그것을 고려하는 것이 좋습니다.

장점 :

1 / 분리 된 조각으로 하나의 활동에서 전체 흐름을 가질 수있는 코드를 모듈화하는 데 도움이됩니다. 예 : + 목록 / 그리드 및 세부 사항, + 로그인 및 등록 및 비밀번호 잊어 버림 + 등 재사용 가능한 코드를 얻는 것이 좋습니다. 다른 프로젝트에서 항상 복사하여 붙여 넣을 수 있습니다.

2 / 당신은 진실한 번거 로움이 가득한 새로운 라이프 사이클을 가지고 있지만 장점도 있습니다. 예 : 유지 된 인스턴스 조각은 방향 문제를 해결하기 때문에 훌륭합니다.

3 / 활동의 이벤트 및 리스너별로 프래그먼트의 흐름을 관리 할 수 ​​있습니다.

4 / 액티비티의 조각 스택.

5 / 많은 화면에서 동일한 작업 표시 줄을 사용하십시오.

그리고 많은 다른 사람들...

나는 때때로 카메라 케이스의 경우 때때로 활동을 컨테이너로만 사용하고 있습니다. 일부 Android API 및 일부 타사 라이브러리는 조각으로 구현하기가 쉽지 않습니다.

글쎄, 그것은 어떤 도구와 마찬가지로, 당신은 그것을 고려해야하며, 경우에 따라 사용하는 것이 더 나은지 스스로 판단해야합니다.

나는 이것이 도움이되기를 바랍니다!

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