【问题标题】:adding buttons in gridlayout programmatically and set width and heigth in percentage以编程方式在gridlayout中添加按钮并以百分比设置宽度和高度
【发布时间】:2016-06-30 18:41:23
【问题描述】:

我有一种方法可以创建宽度和高度固定大小的按钮。要创建按钮,我使用 layout.xaml 模板。按钮模板将被命令调用:

var btn = LayoutInflater.Inflate(Resource.Layout.btn, null);

在该方法期间,按钮获得特殊的文本和颜色。在按钮自定义结束时,按钮将使用以下代码添加到网格布局中:

var pari = new RelativeLayout.LayoutParams(widthbutton, heightbutton)
RunOnUiThread(() => gridlayout.AddView(val.Value, pari));

widthbutton 和 heightbutton 只是一个固定数字。 我的问题是:我想根据网格布局的大小设置按钮的宽度和高度。那么,如何设置按钮的百分比大小呢?

【问题讨论】:

  • 如果要根据屏幕大小调整它们的大小,请尝试使用 "Padding" 。使用“wrap_content”作为高度和宽度。不要给出准确的数字,这样它就不会调整它们的大小。

标签: c# android layout android-gridlayout


【解决方案1】:

如果你想匹配你的按钮到你的GridLayout的宽度和高度,你可以使用ma​​tch_parent来匹配gridLayout的高度和宽度。 所以,它会像......

var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
        LayoutParams.MATCH_PARENT, 0.5f);

构造函数RelativeLayout 传递的是权重,0.5f 表示为您的实例分配的空间的一半。控制它可以让你控制 UI 组件的宽度和高度。

然后将其添加到您的 UI 中。干杯

已编辑

这是在 UI 中实际添加相对布局的方式

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT....... );

我的问题.. var pari 实际持有什么?如果它是一个非 UI 组件(非 RelativeLayout 类型),那么您实际上无法将它添加到您的 UI 中。我实际上给出了之前的解决方案/建议,认为您可能已经意识到这一点。 无论如何,为了避免进一步的假设,也许最好先看看错误:) 干杯

【讨论】:

  • 任何想法:为什么我不能使用 LayoutParams?
【解决方案2】:

@ibtehaz:pari 拥有一个相对布局,其中包含自定义的 textView。这个相对布局将被 OnCreate 方法调用的方法膨胀。在我用信息定义我的按钮之后,我现在更改了 relativelayout 的填充,我得到了例如显示 4*4(行\列)的网格,这是我想要的。可以通过以下方式修改填充:

btn.SetPadding(10, 18, 10, 18);

这仍然不是我最初想要的解决方案,但目前它做了它应该做的事情。感谢大家的帮助

【讨论】:

    猜你喜欢
    • 2018-02-16
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多