我有一个方法可以创建固定大小为宽度和高度的按钮。要创建按钮,我使用的是layout.xaml模板。按钮模板将由命令调用:
var btn = LayoutInflater.Inflate(Resource.Layout.btn, null);
在该方法中,按钮获得特殊文本和颜色。在按钮自定义结束时,该按钮将添加到gridlayout,其代码如下:
var pari = new RelativeLayout.LayoutParams(widthbutton, heightbutton)
RunOnUiThread(() => gridlayout.AddView(val.Value, pari));
widthbutton和heightbutton只是一个修正号码。 我的问题是:我想根据gridlayout的大小设置按钮的宽度和高度。那么,如何设置百分比按钮的大小?
答案 0 :(得分:0)
如果要将按钮与GridLayout宽度和高度匹配,可以使用 match_parent 来匹配gridLayout的高度和宽度。 所以,它会像......
var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT, 0.5f);
构造函数RelativeLayout传递的是权重,0.5f表示实例的已分配空间的一半。通过控制它,您可以控制UI组件的宽度和高度。
然后将其添加到您的UI。干杯
<强> EDITED 强>
以下是在UI中实际添加相对布局的方法
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT....... );
我的问题.. var pari 实际上持有什么?如果它是非ui组件(Not RelativeLayout类型),那么您实际上无法将其添加到UI。我实际上给出了以前的解决方案/建议,认为你可能会意识到这一点。 无论如何,为了远离进一步的假设,也许最好先看错误:) 干杯
答案 1 :(得分:0)
在将命令更改为:
时,我收到编译错误,说“当前上下文中不存在名称'LayoutParams'”var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 0.5f);
我错过了什么吗?
答案 2 :(得分:0)
@ibtehaz:pari拥有一个relativelayout,其中包含自定义的textView。这个relativelayout将由OnCreate方法调用的方法膨胀。在我用信息定义我的按钮后,我现在改变了relativelayout的填充,我得到了例如一个显示4 * 4(行\列)的网格,这就是我想要的。填充可以通过以下方式修改:
btn.SetPadding(10, 18, 10, 18);
它仍然不是我最初想要的那个解决方案,但目前它确实应该做到了。感谢大家的帮助