首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StackLayout中的StackLayout造成溢出

StackLayout中的StackLayout造成溢出
EN

Stack Overflow用户
提问于 2018-12-19 04:44:21
回答 1查看 569关注 0票数 0

我正在创建一个菜单,这是一个场景:

(我只是隐藏了项目名称)

代码是这样的:

代码语言:javascript
复制
public Menu(List<Document> documents, MenuItem parent) {
        ParentItem = parent;

        Orientation = StackOrientation.Vertical;
        HorizontalOptions = LayoutOptions.FillAndExpand;
        VerticalOptions = LayoutOptions.FillAndExpand;
        Spacing = 0;
        Margin = new Thickness(0);
        Padding = new Thickness(0);

        if (documents.Count > 0)
            foreach (Document doc in documents)
                AddItem(new MenuItem(doc, this));
    }

public MenuItem(Document doc, Menu parent) {
        Orientation = StackOrientation.Vertical;
        HorizontalOptions = LayoutOptions.FillAndExpand;
        VerticalOptions = LayoutOptions.Start;
        BackgroundColor = Color.Transparent;
        Spacing = 0;
        Margin = new Thickness(0);
        Padding = new Thickness(0);

        Document = doc;

        Parent = parent;
        Head = new MenuItemHead(doc);
        var bdy = new StackLayout() {
            Orientation = StackOrientation.Vertical,
            HorizontalOptions = LayoutOptions.FillAndExpand,
            BackgroundColor = Color.Transparent,
            Spacing = 0,
            Margin = new Thickness(0),
            Padding = new Thickness(15, 0, 0, 0)
        };
        bdy.Children.Add(new Menu(doc.Documents, this));
        Body = bdy;

        Active = false;

        if (!doc.IsFolderOpen) {
            var tapped = new TapGestureRecognizer();
            tapped.Tapped += (s, e) => {
                bool wasActive = Active;
                parent.CollapseItems();
                if (!wasActive) Show();
            };
            Head.GestureRecognizers.Add(tapped);
        } else {
            if (doc.Documents.Count > 0) {
                var tapped = new TapGestureRecognizer();
                tapped.Tapped += async (s, e) => {
                    await MenuView.Push(new Menu(doc.Documents, this));
                };
                Head.GestureRecognizers.Add(tapped);
            }
        }
    }

为什么菜单项正文溢出?我不明白,也许我漏掉了什么。

EN

回答 1

Stack Overflow用户

发布于 2018-12-19 14:51:21

如果您查看Microsoft Docs中的StackLayout

您会发现您的StackLayout的默认间距为6。

将间距设置为0应该可以帮您完成此操作。

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

https://stackoverflow.com/questions/53840777

复制
相关文章

相似问题

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