2016-11-23 100 views
0

我有一個Xamarin.Forms應用 - iOS上的一切運作良好,但我有一個ListView的問題。在iOS上Xamarin.Forms ListView中的最後一項是不可達

更新集合時,ListView被更新,我可以看到新項目已被添加到列表視圖的頂部,但不知何故視圖中的最後一個項目將不再顯示(!!!)我下降到ListView的結尾,並嘗試拉動ListView,我可以看到最後一個項目在那裏,但它沒有默認顯示,並且無法訪問我無法打開它。

我試圖再次重新綁定集合,做BeginRefresh和EndRefresh但沒有任何幫助。任何人有這個問題?或者我如何強制列表視圖再次呈現?

這是問題的一個例子,你可以在這裏看到的最後一個項目是「測試信息」。 (你可以看到框架不完整 - 底部的行沒有顯示)。用戶認爲這是他的最後一條消息: enter image description here

雖然,如果我拉的ListView我可以開始在ListView看到最後的消息:

enter image description here

但是,如果我讓我的手指離開屏幕後,列表視圖將返回以顯示第一張圖像,而最後兩條消息不見了。

順便說一句 - 另外,如果我添加了兩個新的消息,則最後兩個CellViews將不會顯示等等 - 這個問題只有當我添加新的消息到的ObservableCollection發生。這個問題只發生在iOS上(在Android上它按預期工作)。

感謝, 賽義夫。

+0

我最近遇到這個問題,但只有iOS,Android工作正常。作爲一種解決方法,我根據設備屏幕高度和其他視圖計算了ListView的可見高度,並明確設置了HeightRequest。但這是一個相當醜陋的黑客。 – samgak

+0

我通過更新Xamarin.Forms版本到2.3.2.127來解決它。 – iseif

回答

0

我通過更新Xamarin.Forms版本2.3.2.127固定它。

0

我有一個ListView顯示mnessages,當增加新的(在末尾)我強迫向下滾動列表...也許是有用的你...

var lastMessage = this.listViewMensajes.ItemsSource.Cast<object>().LastOrDefault(); 
       if (null != lastMessage) 
       { 
        if(Animated) 
        { 
         await Task.Delay(500); 
         this.listViewMensajes.ScrollTo(lastMessage, ScrollToPosition.Start, true); 
        } 
        else 
        { 
         this.listViewMensajes.ScrollTo(lastMessage, ScrollToPosition.Start, false); 
        } 

       } 

動畫標誌是作秀幻燈片效果或不...

+0

感謝消息,這個解決方案部分工作,當我做了ScrollTo我看到了最後一條消息,但是當我再次向上滾動時,最後的消息又一次消失了。 – iseif

0

您還可以添加一個頁腳與一個空白框觀點是這樣的:

ListView lv = new ListView{ 
    Footer = new BoxView{ 
    WidthRequest = 30 
    } 
} 

而且你只能添加這在iOS項目。

+0

感謝您的評論 - 這不適合我。 – iseif

相關問題