You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms如何实现多个Button按钮在同一行显示

问题原因

StackLayout默认是垂直排列布局,你直接把两个按钮添加到主容器MainStackLayout中,必然会上下分行显示。

解决方法

每次点击生成按钮时,先创建一个水平方向的布局容器,把两个需要同行的按钮放到这个容器里,再把容器添加到主布局即可。

修改后C#代码

namespace RowCounter.Forms
{
    public partial class MainPage : ContentPage
    {
        public int Number = 1;

        public MainPage()
        {
            InitializeComponent();
        }
        void OnButtonClicked(object sender, EventArgs e)
        {
            // 创建水平布局容器,承载同行的两个按钮
            StackLayout rowContainer = new StackLayout
            {
                Orientation = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Spacing = 8 // 按钮间距可自行调整
            };

            Button projectBtn = new Button
            {
                Text = "NAME PRODJECT" + "  " + Number,
                TextColor = Color.Red,
                WidthRequest = 450,
                HorizontalOptions = LayoutOptions.Start
            };
            Button closeBtn = new Button
            {
                Text = "X",
                WidthRequest = 40,
                HorizontalOptions = LayoutOptions.End
            };

            // 按钮先加进水平容器,再把容器加进主布局
            rowContainer.Children.Add(projectBtn);
            rowContainer.Children.Add(closeBtn);
            MainStackLayout.Children.Add(rowContainer);
            Number++;
        }               
    }
}

可选优化

如果需要适配不同尺寸的屏幕,可以去掉projectBtn的固定宽度WidthRequest = 450,将它的HorizontalOptions改为LayoutOptions.FillAndExpand,按钮会自动占满除关闭按钮外的剩余宽度,适配性更强。
原有XAML代码无需修改即可正常运行。

内容的提问来源于stack exchange,提问作者Ven Saman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:09:04