2012-09-25 4 views
0

우리는 기본적으로 버튼을 클릭하고 측면을 슬라이드하여 최상위 수준보기 뒤에 숨겨진 메뉴에 액세스 할 수있는 앱과 같은 페이 스북과 같은 스타일 메뉴를 구현했습니다.Android 글로벌 메뉴 아키텍처 제안

현재 우리는 전형적인 안드로이드 앱과 같이 별도의 XML 파일에 우리의 모든 의견 (이 앱은 많은 화면이 있음)을 보유하고 있습니다. 나는 조각을 많이 사용한다는 것에 유의해야한다.

우리의 활동과 단편을 최상위 레벨보기로 팽창시키는 대신, 이제 최상위 레벨보기의이 하위 항목으로 부풀게하는 대신 코드를 추상화하는 것이 목표입니다. 모든 활동 (전체 활동은 사용자 정의 활동의 하위 클래스)의 일부입니다.

menu.xml의 작동 방식은 비어있는 중첩 된 자식 FrameLayout을 호스팅하는 외부 FrameLayout을 사용하는 것입니다.

우리가 피하려고하는 것은이 외부 메뉴 코드를 뷰 XML 중 하나 하나에 배치하는 것입니다. 물론 이것이 가능할 수도 있습니다.

빈, 중첩 된 FrameLayout을 메뉴 코드에 포함하는 프로그래밍 방식을 한 파일에서 찾으려고합니다. 우리가 지금처럼 조각의 또는 활동의 XML을 부풀려 갈 때 다음 :

listView = (PullToRefreshListView) inflater.inflate(R.layout.pull_to_refresh_list_view, container, false); 

대신 그 일을, 우리는 중첩 된 아이 FrameLayout이로 팽창 것입니다.

listView = (PullToRefreshListView) inflater.inflate(R.layout.pull_to_refresh_list_view, container, false); 
    ((FrameLayout) getActivity().findViewById(R.id.child)).addView(listView); 

는 현재이 결과 : 이런 식으로 뭔가 내가 시도하고있는 무슨이다 ". 활동을 재개 할 수 없습니다 더보기 조각 MyFragment에 대한 ID 0x7f090019을 찾을 수 없습니다 [ID = 0x7f090019]"

은 모든 입력입니다 고맙습니다. 고맙습니다!

답변

0

비슷한 스타일 메뉴에 대해 수행 한 작업은 프레임 레이아웃을 추가하고 조각을 부 풀리는 작업이었습니다. 그런 다음 translateAnimation과 layoutApp을 사용하여 화면을 올바른 위치로 번역했습니다. 난 그냥 SlideOutMenu 그것을 사용하는 호출 할 수 있도록 잘 코드를 분할 slidingDrawerActivity이 모든 코드를 유지

희망이 도움이 - 당신이 원한다면 더 살충제 그냥 알려

편집 :

지원 라이브러리를 사용하여 프레임 레이아웃을 조각으로 바꾸는 코드

FragmentTransaction FT=getFragmentManager().beginTransaction(); 
FT.replace(R.id.yourFrameLayout, new YourFragment(), yourFragmentTag); 
FT.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
FT.commit(); 
+0

'조각을 부 풀릴 때'부분에 문제가 있습니다. 이 문제는 내 맞춤 부모 활동과 관련 될 수 있습니다. 아직 확실하지 않습니다. – Bijan

+0

호환성 라이브러리를 사용하고 있습니까? 그렇다면 일반적인 활동 대신 FragmentActivity를 확장하고 get 지원 조각 관리자를 사용해야합니다. 참조 : http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html –

+0

상위 액티비티는 FragmentActivity입니다. – Bijan

관련 문제