我一直在爲此掙扎兩天了,仍然無法修復..所以我希望你們能夠幫助我!Xamarin ListView高度等於ContentSize
我有一個頁面,它有一個WebView和一個ListView。兩個項目都能夠自己滾動,但我不想那樣。我希望頁面可以完全滾動。 這意味着我必須將兩個對象放在ScrollView中,並將.Height設置爲與contentSize相等。
對於WebView來說,它非常容易,因爲它有一個LoadFinished事件,我可以設置高度等於它的內容。
現在我正在編寫ListView,並且對此非常困難。由於我從web服務加載數據異步,因此看起來UITableView的contentize在我的渲染器中始終爲0。
public class RZNoScrollListViewRenderer : ViewRenderer<RZNoScrollTableView, UITableView>
{
private UITableView _tableView;
protected override void OnElementChanged (ElementChangedEventArgs<RZNoScrollTableView> e)
{
base.OnElementChanged (e);
if (Control == null)
return;
_tableView = Control as UITableView;
ResizeView();
}
public override void LayoutSubviews()
{
base.LayoutSubviews();
ResizeView();
}
private async void ResizeView()
{
if (_tableView != null)
{
_tableView.LayoutIfNeeded();
var contenSizeHeight = _tableView.ContentSize.Height;
var frame = _tableView.Frame;
frame.Height = contenSizeHeight;
_tableView.Frame = frame;
var listElement = Element as RZNoScrollTableView;
var bounds = new Xamarin.Forms.Rectangle (Element.Bounds.X, Element.Bounds.Y, Element.Bounds.Width, frame.Height);
await Element.LayoutTo (bounds, listElement.TransitionSpeedMsec, listElement.Easing);
Element.HeightRequest = bounds.Height;
}
}
}
有誰知道我怎麼能達到我的目標?
TableView中的行是否爲一個不變的高度?根據行高和行數調整表視圖的大小可能會更容易。 – dylansturg
不,他們不是..我要去羅伯特的答案,因爲這可以幫助我很多:) – Mittchel