Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 以编程方式将按钮宽度设置为父LinearLayout的50%大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我使用LinearLayout创建了一个Dialog,在这个Dialog中,我有一个Button.我想将其宽度设置为Dialog宽度的50%,但无论我做什么,按钮仍然会填满整个宽度.主要问题似乎是我无法以编程方式设置按钮的重量.我尝试创建第二个水平LinearLayout,它将按住权重设置为0.5f的按钮(父亲的weightSum为1),但这并没有改变任何东西.如何将按钮设置为宽度的一半?

我已经查看了所有其他问题,但大多数都使用Xml,因此它们不相关,并且以编程方式解决它的是使用像素的硬编码值,这显然是对问题的错误@L_772_6@案.

编辑:添加一些代码

LinearLayout linearLayout = new LinearLayout(mContext);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setWeightSum(1);

// I use these params when I call addContentView
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);

TESTButton = new Button(mContext);
TESTButton.setText("Test");
TESTButton.setId(1);
TESTButton.setWidth(0);
TESTButton.setGravity(Gravity.CENTER);

LinearLayout buttonLayout = new LinearLayout(mContext);
butonLayout.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,0.5f);
TESTButton.setLayoutParams(buttonParams);
buttonLayout.addView(TESTButton);

linearLayout.addView(buttonLayout);

...

this.addContentView(scrollView,layoutParams);
最佳答案
当我尝试越来越多的选项时,代码变得一团糟.我决定从头开始,这段代码最终起作用:

LinearLayout forButton = new LinearLayout(mContext);
forButton.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams forButtonParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
forButton.setGravity(Gravity.CENTER);

Displaymetrics dm = new Displaymetrics();
this.getWindow().getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;

forButton.addView(TESTButton);
TESTButton.getLayoutParams().width = width/2;

大佬总结

以上是大佬教程为你收集整理的android – 以编程方式将按钮宽度设置为父LinearLayout的50%全部内容,希望文章能够帮你解决android – 以编程方式将按钮宽度设置为父LinearLayout的50%所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。