수색…


관용구 조정

예를 들어 뷰가 표시되는지 아니면 전화 또는 태블릿인지에 관계없이 레이아웃 방향을 변경하는 것과 같이 관념에 따라 특정 조정을 C # 코드에서 수행 할 수 있습니다.

if (Device.Idiom == TargetIdiom.Phone) 
{
    this.panel.Orientation = StackOrientation.Vertical;
} 
else 
{
    this.panel.Orientation = StackOrientation.Horizontal;
}

이러한 기능은 XAML 코드에서도 직접 사용할 수 있습니다.

<StackLayout x:Name="panel">
  <StackLayout.Orientation>
    <OnIdiom x:TypeArguments="StackOrientation">
      <OnIdiom.Phone>Vertical</OnIdiom.Phone>
      <OnIdiom.Tablet>Horizontal</OnIdiom.Tablet>
    </OnIdiom>
  </StackLayout.Orientation>
</StackLayout>

플랫폼 조정

조정은 C # 코드에서 특정 플랫폼에 대해 수행 할 수 있습니다 (예 : 모든 대상 플랫폼에 대한 패딩 변경).

if (Device.OS == TargetPlatform.iOS) 
{
    panel.Padding = new Thickness (10);
}
else
{
    panel.Padding = new Thickness (20);
}

도우미 메서드는 단축 된 C # 선언에도 사용할 수 있습니다.

panel.Padding = new Thickness (Device.OnPlatform(10,20,0));

이러한 기능은 XAML 코드에서도 직접 사용할 수 있습니다.

<StackLayout x:Name="panel">
  <StackLayout.Padding>
    <OnPlatform x:TypeArguments="Thickness"
      iOS="10"
      Android="20" />
  </StackLayout.Padding>
</StackLayout>

스타일 사용하기

XAML로 작업 할 때 중앙 집중식 Style 사용하면 Style 이 지정된보기 집합을 한 곳에서 업데이트 할 수 있습니다. 모든 관용구 및 플랫폼 조정 또한 스타일에 통합 될 수 있습니다.

<Style TargetType="StackLayout">
  <Setter Property="Padding">
    <Setter.Value>
      <OnPlatform x:TypeArguments="Thickness" 
                  iOS="10" 
                  Android="20"/>
    </Setter.Value>
  </Setter>
</Style>

사용자 정의보기 사용

조정 도구 덕분에 페이지에 통합 할 수있는 사용자 정의보기를 만들 수 있습니다.

선택 File > New > File... > Forms > Forms ContentView (Xaml) 하고 각각의 특정 레이아웃 뷰 생성 : TabletHome.xamlPhoneHome.xaml .

그런 다음 File > New > File... > Forms > Forms ContentPage 를 선택하고 다음을 포함하는 HomePage.cs 를 작성하십시오.

using Xamarin.Forms;

public class HomePage : ContentPage
{
    public HomePage()
    {
        if (Device.Idiom == TargetIdiom.Phone)
        {
            Content = new PhoneHome();
        }
        else
        {
            Content = new TabletHome();
        }

    }
}

이제 PhoneTablet 관용구에 대해 다른 뷰 계층을 만드는 HomePage 가 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow