2016-11-22 6 views
0

마스터 세부 정보 페이지와 내비게이션 페이지를 사용하는 앱이 있습니다. Android의 경우 burger 메뉴를 통해 계정 페이지로 이동하면 탐색 막대가 예상대로 화면 상단에 머물러있어 탐색 할 수 있습니다. iOS에서는 탐색 막대가 사라 지므로 햄버거 메뉴 아이콘이있는 사용자 정의 막대를 만들었습니다. 누군가가 사용자 정의 탐색 모음의 아이콘을 클릭하면 버거 (burger) 메뉴가 왼쪽에서 스 와이프되기를 원합니다.Xamarin 양식 사용 - 어떻게하면 단추 클릭을 스 와이프 제스처에 연결할 수 있습니까?

버거 아이콘에 제스처 인식기를 연결했지만 호출 된 메소드에 스 와이프 동작을 수행하기 위해 무엇을 넣어야할지 모르겠습니다.

두 번째 페이지에

탐색 모음 :

<StackLayout IsVisible="{Binding _isiPhone}" Orientation="Horizontal" BackgroundColor="#008334"> 
    <Image Source="burger.png" HorizontalOptions="StartAndExpand"> 
     <Image.GestureRecognizers> 
      <TapGestureRecognizer Tapped="Burger_Clicked"></TapGestureRecognizer> 
     </Image.GestureRecognizers> 
    </Image> 
</StackLayout> 

이벤트 핸들러 :

private void Burger_Clicked(object sender, EventArgs e) 
{ 
} 

안드로이드보기 :

android view

안드로이드 햄버거 메뉴보기 :

android burger menu

아이폰 OS 뷰 (사용자 정의 탐색 바) :

iOS view

아이폰 OS 햄버거 메뉴 :

iOS burger menu

답변

0
당신은에 MasterDetail 페이지에서 "IsPresented"속성을 설정할 수 있습니다

사이드 메뉴를 표시/숨기려면 True/False. 표준 컨트롤은 사용자가 익숙해야하는 것으로 사용자 지정 막대가 실제로 필요한지 다시 생각해보십시오.

마스터 페이지에 대한 콘텐츠 페이지를 사용하는 것이 좋으며, 세부 정보 페이지에 필요한 경우 NavigationPage/TabPage/ContentPage를 사용할 수 있습니다.

+0

죄송 자세한 내용은 official docs를 참조하십시오, 내부 페이지는 콘텐츠 페이지가 아닌 탐색 페이지입니다. 계정 페이지에서 IsPresented 속성에 액세스하는 방법을 모르겠습니다. – NinjaFocks

+0

Application.Current.MainPage를 MasterDetailPage로 캐스팅 할 수 있습니다. 그래서 ((MasterDetailPage) Application.Current.MainPage와 같은) .IsPresented = true; 서랍 밖으로 슬라이드를 보여 주어야합니다. 물론이 코드가 실행될 때 MasterDetailPage가 항상 앱의 루트에있을 경우에만이 접근 방식을 사용해야합니다. 프로젝트를 테스트하고 앱 아키텍처에서 가장 깨끗하고 쉬운 솔루션 인 경우 다른 방법으로 참조를 테스트하거나 저장해야 할 수도 있습니다. – irreal