-1

나는 몇 조각을 보여주고 특정 일을한다고합니다. 이제, 어떤 이벤트를 기반으로 프래그먼트의 화면 (또는 내용)을 변경하려고합니다. 안드로이드의 조각 업데이트

예를 들어.

첫 번째 레이아웃 인 레이아웃 A에는 목록보기가 있습니다. 또 다른 레이아웃 인 레이아웃 B는 테이블 뷰를 가지고 있습니다. 나는 현재 조각에 레이아웃 A를 표시하고 있습니다. 목록 항목을 클릭 할 때 동일한 조각에 레이아웃 B를 표시하려고합니다.

어떻게 처리하나요?

감사합니다.

+0

이것은 매우 광범위하고 일반적인 질문입니다. 당신은 더 구체적 일 수 있습니까? – StuStirling

+0

더 자세한 내용을 포함하도록 질문을 편집했습니다. 감사. – Namratha

답변

1

귀하의 질문을 올바르게 이해하면 이것이 어떻게 될 것입니다.

목록 조각 (조각 A) 및보기 조각 (조각 B)에 대한 조각 클래스를 작성했다고 가정합니다.

조각보기를 사용하여 조각보기를 레이아웃보기에서 바꿀 수 있습니다.

//grab fragmentManager, this will allow us to switch out fragments 
FragmentManager fragManager = getFragmentManager(); 
FragmentTransaction fragTransaction = fragManager.beginTransaction(); 

//first remove the current fragment 
fragTransaction.remove(fragManager.findFragmentById(R.id.layout_view)); 

//replace the current FragmentA with FragmentB 
fragTransaction.replace(R.id.layout_view, new FragmentB()); 

//add to backstack if you want the android back button to work properly 
fragTransaction.addToBackStack(null); 

//and lastly, we commit the changes to the fragmentManger's transaction 
fragTransaction.commit(); 

이 정보가 도움이되기를 바랍니다.

+0

조각을 대체하면 새 조각이 이전 조각과 동일한 화면 공간을 차지하는 지 또는 레이아웃에 의존하는지 확인해야합니까? – Namratha

+0

@Namratha 이전과 같이 전체 화면 공간을 차지할 수있는 몇 가지 다른 방법이 있습니다. 태그가있는 초기 레이아웃에 따라 너비/높이를 설정하고 FragmentA 또는 FragmentB의 레이아웃을 사용하여 레이아웃 크기를 결정하고 전체 화면을 채 웁니다. – Grant

+0

알겠습니다. 감사. 내 프래그먼트 B는 프래그먼트 A와 동일한 XML 파일에 선언됩니까? 그렇다면 응용 프로그램은 표시 할 조각을 어떻게 알 수 있습니까? – Namratha

1

내 첫 번째 레이아웃 인 레이아웃 A에는 목록보기가 있습니다. 그리고 다른 레이아웃 인 레이아웃 B는 테이블 뷰를 가지고 있습니다. 현재 조각에 레이아웃 A가 표시됩니다. 목록 항목을 클릭 할 때 동일한 조각에 레이아웃 B를 표시하려고합니다.

어떻게 처리하나요?

새로운 중첩 프래그먼트 API (호환 패키지 및 일반 프래그먼트 API 16 이상에서 사용 가능)를 사용할 수 있습니다. 현재 FragmentListView이고 (테이블로 대체 될 것입니다) 래퍼 Fragment을 가지고 있습니다. 래퍼의 내용에는 FrameLayout이라는 단일보기가 있습니다.

그러면 ListView을 포함하고 테이블 레이아웃이 포함 된 두 개의 조각을 만듭니다. 처음에는 목록 기반 조각을 래퍼 조각에 추가하여 시작 레이아웃을 얻고 항목 클릭 이벤트에서 getChildFragmentManager()을 사용하여 목록 기반 조각을 테이블 기반 조각 (모두 래퍼 조각에 있음)으로 바꿉니다.