当前位置: 首页 > 知识库问答 >
问题:

卡德维尤在沙马林.Forms?

吕晟睿
2023-03-14

有谁知道是否可以使用 Xamarin.Forms 创建卡视图样式(可滚动)列表?我们需要它在iOS和Android上呈现相同的效果。还需要调整阴影等属性(以略微抬高每张卡)

共有3个答案

东方修谨
2023-03-14

不需要第三方库

它支持滚动和pullrefresh

 <StackLayout>
        <ListView x:Name="ItemsListView" 
            ItemsSource="{Binding Items}"
            VerticalOptions="FillAndExpand"
             HasUnevenRows="true"
             RefreshCommand="{Binding LoadItemsCommand}"
             IsPullToRefreshEnabled="true"
             IsRefreshing="{Binding IsBusy, Mode=OneWay}"
             CachingStrategy="RecycleElement"
             ItemSelected="OnItemSelected">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Padding="10">
                            <Frame HasShadow="True" >
                                <StackLayout>
                                    <Label Text="{Binding Text}" 
                   LineBreakMode="NoWrap" 
                   FontSize="16" />
                                    <Label Text="{Binding Description}" 
                   LineBreakMode="NoWrap" 
                   FontSize="16" />
                                </StackLayout>

                            </Frame>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
邵阳
2023-03-14

为什么不使用框架?我被放在listview中,一个带有网格的框架。这样做可以得到你喜欢的风格卡片视图。

public class CardView : Frame
{
    public CardView()
    {
        if (Device.OS == TargetPlatform.iOS)
        {
            HasShadow = false;
            OutlineColor = Color.Transparent;
            BackgroundColor = Color.Transparent;
        }

        if (Device.OS == TargetPlatform.Android)
        {
            HasShadow = true;
            OutlineColor = Color.Transparent;
            BackgroundColor = Color.Transparent;
        }
    }
}
汪和悌
2023-03-14

这里有一个nuget:https://github.com/tiger4589/Xamarin.Forms-CardView

Xamarin.Froms中的Cardview控件。仅在共享项目中安装它,并在页面的xaml中使用以下导入:

xmlns:cardView="clr-namespace:CardView;assembly=CardView"

只需使用listview的viewcell中的控件。

示例屏幕截图:每张卡片在列表视图中都是一行

以下代码是上述控件的用法示例:

<ListView
            x:Name="listView"
            Margin="0,8,0,0"
            HasUnevenRows="True"
            ItemTapped="Handle_ItemTapped"
            ItemsSource="{Binding HouseholdDetail}"
            SeparatorVisibility="None">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Padding="8,8,8,8" Orientation="Vertical">
                            <cardView:CardView
                                BackgroundColor="White"
                                CardViewHasShadow="True"
                                HeightRequest="220">
                                <cardView:CardView.CardViewContent>
                                    <StackLayout
                                        Padding="10"
                                        HorizontalOptions="Center"
                                        Spacing="10"
                                        VerticalOptions="Center">
                                        <Image HeightRequest="96" Source="{Binding Image}" />
                                        <BoxView
                                            HeightRequest="1"
                                            WidthRequest="275"
                                            Color="LightGray" />
                                        <Grid>
                                            <Label
                                                Grid.Row="0"
                                                Grid.Column="0"
                                                Margin="15,0,0,0"
                                                FontSize="Medium"
                                                Text="{Binding FullName}" />
                                            <Label
                                                Grid.Row="0"
                                                Grid.Column="1"
                                                Margin="0,0,15,0"
                                                FontSize="Medium"
                                                HorizontalTextAlignment="End"
                                                Text="{Binding Relation}" />
                                        </Grid>
                                        <BoxView
                                            HeightRequest="1"
                                            WidthRequest="275"
                                            Color="LightGray" />
                                        <Grid>
                                            <Label
                                                Grid.Row="0"
                                                Grid.Column="0"
                                                Margin="15,0,0,0"
                                                FontSize="Medium"
                                                Text="{Binding LeavesAt}" />
                                            <Label
                                                Grid.Row="0"
                                                Grid.Column="1"
                                                Margin="0,0,15,0"
                                                FontSize="Medium"
                                                HorizontalTextAlignment="End"
                                                Text="{Binding ArrivesAt}" />
                                        </Grid>
                                    </StackLayout>
                                </cardView:CardView.CardViewContent>
                            </cardView:CardView>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

在这里,您可能会注意到您所拥有的自由度,例如您可以定义是否有阴影,并使用Xamarin默认布局设计cardview的整个布局。

 类似资料:
  • 我一直在看Joe Montemagno关于Xamarin和Azure的演示(https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/T104)并且我按照视频中解释的所有步骤进行了操作(我认为它不完整,或者至少我有点傻),并且我无法在UWP中调试应用程序时验证Azure中的应用程序(在Windows 10 PC

  • 我对这个错误感到非常沮丧。我完成了我的项目,并在我的Android 4.4.2版设备上运行,它成功运行,然后我成功上传到Playstore,并再次从Playstore安装,但它仍然运行良好。。。。。 但后来我收到了很多朋友的车祸报告。然后我借用了我朋友的Android6.0.1版设备,从Android Studio运行应用程序,在Splashactivity启动后,应用程序突然崩溃。Splasha

  • 在尝试运行我的应用程序时,我意外地遇到了以下错误: 以下是日志目录: 下面是java代码: 以下是布局代码: 提前谢谢

  • 我正在尝试向Xamarin添加推送通知。使用本教程的iOS应用程序https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-ios-push-notification-apns-get-started 我已经按原样完成了所有步骤,以下是我迄今为止尝试的步骤:- AppDelegate。反恐精

  • 我正在为学校创建一个跨平台的应用程序,我遇到了这个错误: 沙马林。形式。站台Android视图渲染器'2。找不到CreateNativeControl。 当我尝试呈现我的位置页面时,它会被触发。 LocationPage.xaml 有人知道如何修复这个错误吗?

  • 我正在尝试使用Spring和Spring Boot学习微服务,并学习部署到云平台。我计划创建一个Angular 2前端应用程序,它与我部署的微服务进行通信。现在,我正在浏览Spring cloud services Eureka、Zuul、Recural breakers等。 null