Xamarin.Forms Layout Challenges – Social Network App(转载)

  Xamarin.Forms Layout Challenges – Social Network App(转载)

布局示例(一)

原文链接:http://www.kymphillpotts.com/social-network-app-layout-design-in-xamarin-forms/

GitHub链接:https://github.com/kphillpotts/XamarinFormsLayoutChallenges

Youtube视频(英文)在这里:https://www.youtube.com/watch?v=4HlLjTZQzjM

优酷土豆视频(自己录得视频,好像声音挂了.......)在这里:http://v.youku.com/v_show/id_XMjg3ODA5MzUyOA==.html?spm=a2h3j.8428770.3416059.1

图片:

 

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="SocialNetwork.MainPage" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:SocialNetwork" BackgroundColor="White">

    <ScrollView>
        <Grid ColumnSpacing="0" RowSpacing="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="AUTO" />
                <RowDefinition Height="AUTO" />
                <RowDefinition Height="AUTO" />
                <RowDefinition Height="*" />
                <RowDefinition Height="AUTO" />
            </Grid.RowDefinitions>

            <!--  header background  -->
            <Image Aspect="AspectFill" Source="HeaderBackground.png" />
            <Image Aspect="Fill" Source="CurvedMask.png" VerticalOptions="End" />

            <!--  profile image  -->
            <Image HeightRequest="100" HorizontalOptions="Center" Source="ProfilePic.png" TranslationY="50" VerticalOptions="End" WidthRequest="100" />

            <!--  Profile Name  -->
            <StackLayout Grid.Row="1" Padding="0,50,0,00" HorizontalOptions="Center">
                <Label HorizontalTextAlignment="Center" Style="{StaticResource ProfileNameLabel}" Text="Clementine" />
                <Label Margin="0,-5" HorizontalTextAlignment="Center" Style="{StaticResource ProfileTagLabel}" Text="Hipster Coffee Drinker" />
            </StackLayout>

            <!--  Social Stats Section  -->
            <Grid Grid.Row="2" Margin="0,30" ColumnSpacing="0" RowSpacing="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>

                <StackLayout>
                    <Label Style="{StaticResource StatsNumberLabel}" Text="33" />
                    <Label Style="{StaticResource StatsCaptionLabel}" Text="Likes" />
                </StackLayout>

                <StackLayout Grid.Column="1">
                    <Label Style="{StaticResource StatsNumberLabel}" Text="94" />
                    <Label Style="{StaticResource StatsCaptionLabel}" Text="Following" />
                </StackLayout>

                <StackLayout Grid.Column="2">
                    <Label Style="{StaticResource StatsNumberLabel}" Text="957" />
                    <Label Style="{StaticResource StatsCaptionLabel}" Text="Followers" />
                </StackLayout>
            </Grid>

            <!--  profile description  -->
            <ScrollView Grid.Row="3">
                <Label Margin="20,0" HorizontalTextAlignment="Center" Style="{StaticResource MainBodyLabel}" Text="Spicy jalapeno bacon ipsum dolor amet pork loin pork sint sed occaecat swine ham capicola deserunt pork belly frankfurter magna drumstick." />
            </ScrollView>

            <!--  follow button  -->
            <Button Grid.Row="4" Margin="20" Style="{StaticResource FollowButton}" Text="Follow" VerticalOptions="End" />

        </Grid>
    </ScrollView>
</ContentPage>

 

<?xml version="1.0" encoding="utf-8" ?>
<Application x:Class="SocialNetwork.App" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
    <Application.Resources>
        <!--  Application resource dictionary  -->
        <ResourceDictionary>
            <!--  colors  -->
            <Color x:Key="HeaderTextColor">#585858</Color>
            <Color x:Key="BodyTextColor">#C3C3C3</Color>
            <Color x:Key="ButtonBackgroundColor">#5992FF</Color>

            <!--  font families  -->
            <OnPlatform x:Key="RegularFontFamily" x:TypeArguments="x:String">
                <On Platform="iOS">HelveticaNeue</On>
                <On Platform="Android">sans-serif</On>
            </OnPlatform>

            <OnPlatform x:Key="LightFontFamily" x:TypeArguments="x:String">
                <On Platform="iOS">HelveticaNeue-Light</On>
                <On Platform="Android">sans-serif-light</On>
            </OnPlatform>

            <OnPlatform x:Key="MediumFontFamily" x:TypeArguments="x:String">
                <On Platform="iOS">HelveticaNeue-Medium</On>
                <On Platform="Android">sans-serif-medium</On>
            </OnPlatform>

            <!--  font sizes  -->
            <x:Double x:Key="TitleFontSize">20</x:Double>
            <x:Double x:Key="BodyFontSize">18</x:Double>
            <x:Double x:Key="TagTextFontSize">18</x:Double>
            <x:Double x:Key="StatsNumberFontSize">20</x:Double>
            <x:Double x:Key="StatsCaptionFontSize">16</x:Double>
            <x:Double x:Key="ButtonFontSize">14</x:Double>

            <!--  styles  -->
            <Style x:Key="ProfileNameLabel" TargetType="Label">
                <Setter Property="TextColor" Value="{StaticResource HeaderTextColor}" />
                <Setter Property="FontFamily" Value="{StaticResource MediumFontFamily}" />
                <Setter Property="FontSize" Value="{StaticResource TitleFontSize}" />

            </Style>

            <Style x:Key="ProfileTagLabel" TargetType="Label">
                <Setter Property="TextColor" Value="{StaticResource BodyTextColor}" />
                <Setter Property="FontFamily" Value="{StaticResource RegularFontFamily}" />
                <Setter Property="FontSize" Value="{StaticResource TagTextFontSize}" />
            </Style>

            <Style x:Key="StatsNumberLabel" TargetType="Label">
                <Setter Property="TextColor" Value="{StaticResource HeaderTextColor}" />
                <Setter Property="HorizontalTextAlignment" Value="Center" />
                <Setter Property="FontFamily" Value="{StaticResource LightFontFamily}" />
                <Setter Property="FontSize" Value="{StaticResource StatsNumberFontSize}" />
            </Style>

            <Style x:Key="StatsCaptionLabel" TargetType="Label">
                <Setter Property="TextColor" Value="{StaticResource BodyTextColor}" />
                <Setter Property="Margin" Value="0,-5,0,0" />
                <Setter Property="HorizontalTextAlignment" Value="Center" />
                <Setter Property="FontFamily" Value="{StaticResource LightFontFamily}" />
                <Setter Property="FontSize" Value="{StaticResource StatsCaptionFontSize}" />
            </Style>

            <Style x:Key="MainBodyLabel" TargetType="Label">
                <Setter Property="TextColor" Value="{StaticResource BodyTextColor}" />
                <Setter Property="FontFamily" Value="{StaticResource RegularFontFamily}" />
                <Setter Property="FontSize" Value="{StaticResource BodyFontSize}" />
            </Style>

            <Style x:Key="FollowButton" TargetType="Button">
                <Setter Property="BackgroundColor" Value="{StaticResource ButtonBackgroundColor}" />
                <Setter Property="TextColor" Value="White" />
                <Setter Property="HeightRequest" Value="40" />
                <Setter Property="BorderRadius" Value="20" />
                <Setter Property="FontFamily" Value="{StaticResource MediumFontFamily}" />
                <Setter Property="FontSize" Value="{StaticResource ButtonFontSize}" />
            </Style>
        </ResourceDictionary>
    </Application.Resources>
</Application>

 

 

 

posted @ 2017-07-08 23:15  牛肉汤先生  阅读(398)  评论(2编辑  收藏  举报