셀 유형이 StackLayout이고 모두 WrapLayout입니다. Drag & Drop ListView과 비슷하게 순서를 바꿀 수있는 방법을 알아낼 수 없습니다. 여기 Xamarin.Forms 순서 재 지정 가능 WrapLayout
는 WrapLayout입니다 :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,
};
그리고 여기에 하나의 셀입니다 :
// 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);
그리고 여기에 응용 프로그램이 실제로 같은 지금 같은 모습입니다 :
어떤 도움 이것을 가능하게하는 것은 인정됩니다.
그래서 어떻게 손가락으로 상자를 움직일 수 있습니까? – ctkrocks
게으른 구현 : 화면의 다른 부분을 다시 탭하면 선택한 StackLayout/셀을 이동하고 재정리하고 새로 고쳐야하는 지점으로 등록됩니다. 비 게으른 구현 : 각 플랫폼에서 맞춤 렌더러를 사용하십시오. 이렇게하면 터치 관련 이벤트를 사용하여 이동의 델타를 가로 채고 터치 이벤트가 끝나면 손가락을 들어 올리면 좌표를 사용하여 StackLayout/셀이 배치 된 위치를 계산할 수 있습니다. 커스텀 렌더러 (Custom Renderer)가 최선이라고 생각합니다. – nkorai
좋아요. 확실히 비 게으른 구현을 사용해야합니다. :피 – ctkrocks