首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView高度等于ContentSize

ListView高度等于ContentSize
EN

Stack Overflow用户
提问于 2015-11-15 12:51:22
回答 1查看 671关注 0票数 0

我已经为这件事挣扎了两天了,似乎还是没能把它修好。所以我希望你们能帮我!

我有一个有WebView和ListView的页面。这两个项目都可以自己滚动,但我不想那样。我希望页面完全可滚动。这意味着我必须将两个对象放置在ScrollView中,并将.Height设置为等于它的contentSize。

对于WebView来说,它非常容易,因为它有一个LoadFinished事件,所以我能够设置与它的内容相等的高度。

现在我正在编写ListView,我在这方面有很大的困难。由于我是从webservice加载数据异步的,所以UITableView的内容大小似乎总是在呈现器中为0。

代码语言:javascript
复制
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;
        }
    }
}

有人知道我怎样才能达到我的目标吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-15 13:06:20

我会把网页视图放在列表视图的标题中。然后,listview内容应该像它应该的那样虚拟化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33719871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档