[英]Optimising Pivot Control windows phone 8
情況1:
我有一個帶有3個數據透視項的數據透視控件,並且每個數據透視項在第一次獲得焦點時都將充滿數據(來自服務器)。
現在,當我從其他頁面導航回到該數據透視頁面時,會產生很多延遲。 如何優化它並減少延遲? 導航回此頁面時,即使我也無法顯示ProgressBar。
情況2:
我有一個包含更多項目的ListView,例如150,選擇一個項目時,我需要顯示selectedItem的詳細描述,並且它應該是可滑動的,以便用戶可以在同一描述頁面中看到下一條記錄。
現在,我正在使用“數據透視頁面”並將項目綁定到ItemsSource屬性,並且導航到“數據透視頁面”並從“數據透視頁面”導航時會產生更多的延遲(10秒)。
如何擺脫這種延遲?
幫我。 謝謝。
使用LongListSelector
(WP8)或ListView
(WP8.1)作為首頁上的項目持有人。 它具有UI虛擬化,因此無論頁面上有多少項目,都只會呈現屏幕上的項目。 它必須解決您的case 1
延遲。 如果不是,則問題出在第2頁中。
您詳細信息的屏幕處理方法是完全錯誤的。 Pivot
是為其他目的而創建的,不建議在其中容納5個以上的項目。
因此,您需要:
DataContext
綁定到LayoutRoot
ManipulationCompleted
事件處理程序添加到LayoutRoot
並檢查是否有滑動 DataContext
更新為上一個或下一個項目。 這將更新屏幕上顯示的數據 DataContext
並調用動畫以從屏幕的另一側帶來新的項目 這將復制“ Pivot
行為,但不會消耗不可見項的內存
UPD:
第4步實施:
private void LayoutRoot_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
(LayoutRoot.RenderTransform as CompositeTransform).TranslateX += e.DeltaManipulation.Translation.X;
}
private void LayoutRoot_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
if (e.TotalManipulation.Translation.X + e.FinalVelocities.LinearVelocity.X < -100)
{
if (current < Count - 1)
{
//slide to next item
current++;
}
else
{
//no next item - slide back
}
}
else if (e.TotalManipulation.Translation.X + e.FinalVelocities.LinearVelocity.X > 100)
{
if (current > 0)
{
// slide to prev item
current--;
}
else
{
// no prev item - slide back
}
}
else
{
// no swipe - slide back
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.