Tôi đang xây dựng một ứng dụng liên quan đến GPS hiển thị tọa độ giữa các tính toán khác. Mã demo của tôi được thiết lập để kích hoạt các sự kiện mỗi giây.Tại sao trang Toàn cảnh WP7 lại nhảy khi cập nhật?
Bất cứ khi nào tôi cập nhật giao diện người dùng trang chính (ví dụ: hộp văn bản có Latitude được tính), nó hoạt động tốt.
Vấn đề là nếu tôi cố gắng "vuốt" từ một phía sang phía bên kia, để thay đổi trang. Trong khi đang trong quá trình "flicking", nếu hộp văn bản được cập nhật, nó sẽ nhảy trở lại trang chính.
Loại khó giải thích bằng văn bản không có video. Nhưng hãy tưởng tượng nhấp chuột-n-giữ, và kéo màn hình toàn cảnh chỉ một chút - nói, để nhìn trộm ở trang tiếp theo nhưng không lật. Vâng, nếu hộp văn bản đã được cập nhật trong thời gian đó, bạn sẽ mất nhấp chuột giữ của bạn và nó sẽ nhảy trở lại trang chính.
Khi bạn chuyển sang trang tiếp theo, nó vẫn còn và tôi có thể thấy cập nhật tràn từ trang trước. Không có vấn đề lớn ở đó. Nhưng nó chỉ cố gắng để đến trang tiếp theo đó.
Tôi mới sử dụng WP7/Silverlight, vì vậy tôi đã cố gắng sử dụng Dispatcher để làm cho mọi thứ phản hồi nhanh hơn. Không có vấn đề gì tôi làm (sử dụng Dispatcher hay không), điều này luôn luôn xảy ra. Vì vậy, tôi đoán điều này đã làm với giao diện người dùng đang được cập nhật.
Một mã nhỏ luôn giúp:
void GeoWatcher_PositionChanged(object sender,
GeoPositionChangedEventArgs<GeoCoordinate> e)
{
Deployment.Current.Dispatcher.BeginInvoke(() => MyPositionChanged(e));
}
void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
var model = GeoProcessor.GetPosition(e.Position);
latitude.Text = model.Latitude;
longitude.Text = model.Longitude;
altitude.Text = model.Altitude;
accuracy.Text = model.Accuracy;
direction.Text = model.Direction;
speed.Text = model.Speed;
speedAvg.Text = model.SpeedAvg;
}
Khi bất kỳ của các textbox được cập nhật, màn hình "nhảy" trở lại trang chính. Loại kinh nghiệm xấu.
Có thể điều đó là bình thường? Có sự kiện nào liên quan đến việc biết rằng người dùng đang cố gắng "trượt" trang tiếp theo không?
Xin cảm ơn trước.