(StackLayout型の)セルのグループがあり、それらはすべてWrapLayoutにあります。 Drag & Drop ListViewのように、並べ替え可能にする方法を見つけることができないようです。ここでXamarin.Forms並べ替え可能WrapLayout
はWrapLayoutです:
// Configure cell
var cell = new StackLayout
{
WidthRequest = Device.Idiom == TargetIdiom.Phone ? 60 : 140,
HeightRequest = Device.Idiom == TargetIdiom.Phone ? 60 : 50,
BackgroundColor = Color.FromRgb(60, 56, 72),
Children = {
new Label {
Text = Device.Idiom == TargetIdiom.Phone ? book.Contains("1") || book.Contains("2") || book.Contains("3") ? book.Substring(0,4).Replace(" ", "") : book.Substring(0,2) : book,
FontSize = 18,
TextColor = Color.White,
LineBreakMode = LineBreakMode.TailTruncation,
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalTextAlignment = TextAlignment.Center,
HorizontalTextAlignment = TextAlignment.Center
}
}
};
layout.Children.Add(cell);
そして、ここでは、アプリが実際に今のよう次のようになります。:
すべてのヘルプ
WrapLayout layout = new WrapLayout
{
Spacing = 5,
Orientation = StackOrientation.Horizontal,
Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5),
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
};
そしてここでは、1個のセルがありますこれを可能にすることに感謝します。
どのようにして指でボックスを移動させるのですか? – ctkrocks
遅延実装:スクリーンレジスタの別の部分をもう一度タップすると、選択したStackLayout /セルを移動して並べ替え、更新する必要があります。 非遅延実装:各プラットフォームでカスタムレンダラーを使用してください。これにより、タッチ関連のイベントを使用して移動のデルタを傍受することができます。タッチイベントが終了すると指が離されると、座標を使用してStackLayout /セルが配置された場所を計算します。カスタムレンダラーは、私が考える最高の賭けです。 – nkorai
間違いなく、非遅延実装を使用する必要があります。 :P – ctkrocks