首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对Xamarin的滚动视图中的内容与屏幕大小进行调整?

如何对Xamarin的滚动视图中的内容与屏幕大小进行调整?
EN

Stack Overflow用户
提问于 2019-05-26 21:21:03
回答 1查看 269关注 0票数 0

我有一堆按钮,我想要堆栈,但我也希望它们是可滚动的。如何将按钮的大小设置为实际屏幕大小的百分比?我试过在网格布局上调整星号。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-27 05:00:06

下面是.以编程方式添加到ScrollView中的10个按钮,每个按钮占屏幕总宽度和高度的百分比(分别为50%和20% ),以及单击处理程序.

代码语言:javascript
运行
复制
    protected override void OnCreate(Bundle savedInstanceState) {
        base.OnCreate(savedInstanceState);

        // Get Screen Dimensions
        var dm = Resources.DisplayMetrics;
        var widthDP = dm.WidthPixels / dm.Density;
        var heightDP = dm.HeightPixels / dm.Density;
        Android.Util.Log.Info("MyApp", $"Screen Width x Screen Height = {widthDP}dp X {heightDP}dp");

        // Add 10 Buttons in a ScrollView
        var sv = new ScrollView(this);            
        var ll = new LinearLayout(this) { Orientation = Android.Widget.Orientation.Vertical };
        sv.AddView(ll);

        for (int i = 0; i < 10; i++) {
            var btn = new Button(this);
            btn.SetBackgroundColor(Color.Blue);
            btn.Text = $"Button #{i+1}";
            btn.Tag = i+1;
            btn.Click += (sender, e) => {
                Android.Util.Log.Info("MyApp", $"Button # {btn.Tag} + Clicked!");
            };
            // Make each button 50% of the total screen width and 20% of the *total* screen height
            var lp = new LinearLayout.LayoutParams(Convert.ToInt32(widthDP * .50), Convert.ToInt32(heightDP * .20));
            lp.SetMargins(0, 10, 0, 0);     // Top margin of 10
            btn.LayoutParameters = lp;
            ll.AddView(btn);
        }

        SetContentView(sv);
    }

ScreenShot

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

https://stackoverflow.com/questions/56317446

复制
相关文章

相似问题

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