2017-12-26 12 views
2

나는 xamarin 양식 android 및 ios 교차 플랫폼 응용 프로그램을 코딩하고 있습니다. 버튼을 누를 때마다 다른 페이지로 이동하는 버튼이있는 햄버거 슬라이드 아웃 탐색 메뉴가 만들어집니다. 나는 튜토리얼을 보았지만 그들 중 누구도 내가 잘 자란 (xamarin)을 처음 접한 이래로 만들 수있을 정도로 충분히 설명했다.xamarin 양식 교차 플랫폼 햄버거 슬라이드보기를 만드는 방법

나는이 튜토리얼 here을 따라했지만, "메인 페이지"와 "검색 페이지"및 "프로필 페이지"라는 두 페이지가 이미 있으므로이 항목을 얻지 못 했으므로 이름이 혼란 스럽다. 페이지와 물건을 잃어버린다.

+0

아주 좋은 간단한 공식 가이드가 있습니다. 확인 했니? https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/navigation/master-detail-page/ – EvZ

+0

@EvZ MainPageCS 페이지를 만들려고 할 때 "Master = MasterPage;" 줄의 이름은 Master가 현재 컨텍스트에 존재하지 않는다고 말합니다. –

+0

@Jacob 자신 만의 MasterPage를 만들고 MasterPageItem에 세부 정보 페이지를 넣어야합니다. –

답변

1

음, 기본적으로, 당신은 모두 (이 Xamarin.Forms에 안드로이드에 DrawerMaster를 불렀다)와 내용 없음 (이 Xamarin.Forms에 Detail를 불렀다) "보기 슬라이드"인 MasterDetailPage 있습니다. 이러한 각각의보기는 Xamarin의 페이지입니다.

당신은 그냥이 같은 페이지에 두 예절 (마스터 및 세부) 설정하여 MasterDetailPage을 만들 수 있습니다

// MainPage here is the Propriety of the App class that controls the current displayed page 
MainPage = new MasterDetailPage 
{ 
    Master = new ContentPage { Content = new StackLayout { Children = { new Label { Text = "This is the Drawer Page!" } } } }, 
    Detail = new ContentPage { Content = new StackLayout { Children = { new Label { Text = "This is the Detail Page!" } } } } 
}; 

앱 클래스에이를 추가하고 "This is the Drawer Page!"을 말한다 서랍을해야합니다 세부 정보 페이지는 "This is the Detail Page!"입니다.

이제 클래스에서 그 ContentPages를 분리하는 경우,이 같은 것입니다 :

public class MasterPage : ContentPage 
{ 
    public MasterPage() 
    { 
     Content = new StackLayout 
     { 
      Children = 
      { 
       new Label { Text = "This is the Master page!" } 
      } 
     } 
    } 
} 

public class DetailPage : ContentPage 
{ 
    public DetailPage() 
    { 
     Content = new StackLayout 
     { 
      Children = 
      { 
       new Label { Text = "This is the Detail page!" } 
      } 
     } 
    } 
} 

// And in the App constructor 
MainPage = new MasterDetailPage 
{ 
    Master = new MasterPage(), 
    Detail = new DetailPage() 
}; 

그리고 그것 뿐이다 ... 당신은 이것에 대해 더 이상 질문 :

을 물어 주시기 바랍니다가있는 경우 코멘트

이 코드는 응용 프로그램 클래스에서 사용하기위한 것입니다 후


편집, 다른 클래스는 MainPage 속성이 없습니다.

App.Current.MainPage = new MainPage 
{ 
    Master = MasterPage(), 
    Detail = DetailPage() 
}; 
을 : 당신이 당신의 MainPage 클래스 방금 대신 탐색으로 밀어의, 로그인 후, MasterDetailPage에서 MainPage ( public class MainPage : MasterDetailPage)를 확장 할 수있는 MasterDetailPage 싶은 경우

는, 호출하여 응용 프로그램의 MainPage 당신의 MainPage에 설정

+0

내 응용 프로그램이 시작되면 로그인 페이지로 이동 한 후 "MainPage"라는 클래스로 이동합니다. MainPage 생성자에 최상위 코드를 추가하려고 시도했지만 오류가 발생합니다. –

+0

저는 이것을 구현하는 방법에 대해 여전히 혼란 스럽 습니다만, NavigationPages와 Xamarin을 처음 사용했습니다. MasterPageDetail이라는 클래스를 만들어야합니까? 지금 당장 App 생성자가 실행될 때 이미 로그인 데이터가 있는지 확인합니다. MainPage에 NavigationPage를 작성하면 로그인 페이지로 이동합니다 (LoginPage에 로그인 한 후 MainPage로 이동). MainPage에 옵션이있는 서랍이 있어야합니다. "Home"(aka MainPage)와 SearchPage에 "Search" –

+0

내가 말한 것을 이해하려고 노력하십시오. MasterDetailPage에는 서랍에 대한 속성과 Content에 대한 속성이 있습니다. 두 속성의 유형은 Page입니다.MasterDetailPage의 Master 속성을 Drawer (Slide-View)를 나타내는'Page'로 설정하고 Detail 속성을 컨텐츠를 나타내는 Page (ContentPage가있는 NavigationPage)로 설정하십시오. –