有谁知道是否可以使用 Xamarin.Forms 创建卡视图样式(可滚动)列表?我们需要它在iOS和Android上呈现相同的效果。还需要调整阴影等属性(以略微抬高每张卡)
不需要第三方库
它支持滚动和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>
为什么不使用框架?我被放在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;
}
}
}
这里有一个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