2016-07-13 4 views
2

를 형성 나는 다음과 같은 코드가 있습니다스택 레이아웃 레이아웃 악몽

<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" Margin="0,10,0,10" BackgroundColor="Green" Padding="5,5,5,5"> 
     <StackLayout Orientation="Vertical" HorizontalOptions="FillAndExpand" Margin="0,0,0,0" BackgroundColor="Blue"> 
       <Label Text="SHOW COMPLETED TASKS" BackgroundColor="Red" Style="{StaticResource lblSubHeading_Black}" /> 
     </StackLayout> 
     <Switch x:Name="CompletedJobsSwitch" Toggled="CompletedJobsSwitch_Toggled" HorizontalOptions="EndAndExpand" IsToggled="{Binding isOn}" BackgroundColor="Yellow"/> 
    </StackLayout> 

응용 프로그램로드가 표시 될 때 모든 부하를 잘하지만,하지만 스위치를 잘 세척되지 않습니다. 왜? 정말 짜증나, 정말 일관성이없는 것 같습니다 enter image description here 나는 http://forums.xamarin.com/discussion/21226/how-to-right-align-a-view-inside-a-list-item을 보았습니다. 그러나 이것은 저에게는 효과적이지 않습니다.

아이디어가 있으십니까?

+0

일관성이 없습니다. 'StackLayout'은 필요한만큼의 공간 만 차지합니다. 가장 높은 레벨에서 그것 주위에'Grid'를 놓으십시오. –

+0

내가 inconstant라고 할 때, Xamar 양식에 XAML을 사용하지만, Stackable을 StackLayout으로 채우고 확장하면 왜 그 일을하지 않습니까? 그리드를 추가하면이 문제에 대해 석고가 붙어있는 것처럼 보입니다. –

+0

그리드를 추가 할 필요없이 최상위 StackLayout을 Grid로 바꿉니다. –

답변

7

사용이

<Grid BackgroundColor="Green"> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="auto" /> 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*" /> 
    <ColumnDefinition Width="auto" /> 
    </Grid.ColumnDefinitions> 
    <Label Text="SHOW COMPLETED TASKS" BackgroundColor="Red" /> 
    <Switch x:Name="CompletedJobsSwitch" BackgroundColor="Yellow" Grid.Column="1" /> 
</Grid> 
+0

우수한 치료 덕분에 작동합니다! 그냥 내가 필요했던 것 : –

+0

이 솔루션은 나에게도 훌륭했다. 나는 Orientation = "Horizontal"인 StackLayout과 동일한 문제를 가지고있었습니다. 마지막 항목은 HorizontalOptions = "End"로 설정된 스위치입니다. 모든 안드로이드 화면과 더 넓은 IOS 화면에서 (화면의 오른쪽에 스위치를 맞 춥니 다) 잘 작동했지만, 작은 IOS 화면에서는 스위치가 왼쪽 그림과 같이 미끄러졌습니다. 위의 그리드 접근 방식은 테스트 한 모든 화면에서 잘 작동합니다. 업데이트에 대해 –

4

StackLayoutLabel의 조합으로 잘 알려진 문제 :

JamesMontemagno에 설명 된 해결 방법을 사용할 수 있습니다. 이 경우 StackLayout 대신 Grid을 사용하는 것이 포인트입니다.

+0

에게 감사드립니다. –