我的问题很简单,
如何设置我的按钮layout_gravity编程?
我在互联网上找到了这个,但它只是抛出了一个空指针异常:
Button MyButton = new Button(this);
LinearLayout.LayoutParams lllp=(LinearLayout.LayoutParams)MyButton.getLayoutParams();
lllp.gravity=Gravity.RIGHT;
MyButton.setLayoutParams(lllp);
MyLinearLayout.addView(MyButton);
有解决方案吗?
我讨厌复活旧线程,但这是一个没有正确回答的问题,而且我自己也遇到过这个问题。
下面是比较长的部分,如果你只对答案感兴趣,请一直向下滚动到代码:
Android:gravity和Android:layout_gravity工作方式不同。这是我读过的一篇帮助我的文章。
文章要点:重力在高度/宽度分配后影响视图。因此重心不会影响FILL_PARENT(认为它是自动边距)完成的视图。layout_gravity centre将影响视图FILL_PARENT(认为它是auto pad)。
基本上,android:layout_gravity不能通过编程方式访问,只能访问android:gravity。
在OP的情况下,我的情况下,接受的答案没有把按钮垂直中心。
为了完善Karthi的回答:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
button.setLayoutParams(params);
链接到LinearLayout.LayoutParams。
android:layout_gravity显示“No related methods”,意思是不能通过编程方式访问。
而重力在课堂上是一个场。