如何以编程方式在Android中居中GridLayout(不更改xml文件)?

时间:2014-08-03 13:50:12

标签: android android-layout android-gridlayout

要将GridLayout置于其xml文件中心,只需添加行

即可
android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

也可以用于其他布局。同样,例如,以RelativeLayout程序化为中心很简单:给视图充气,创建一个新的RelativeLayout.LayoutParams并让它调用

addRule(RelativeLayout.CENTER)

将其添加到视图之前。但与RelativeLayout不同,.addRule的方法GridLayout.LayoutParams未根据reference定义。该怎么做?

2 个答案:

答案 0 :(得分:1)

corsair992的评论帮助我理解了这个问题:它是父容器,它的子视图居中,所以如果你的GridLayout例如由RelativeLayout包含,那么这个问题就可以了通过添加此代码来解决:

RelativeLayout.LayoutParams overviewParams =
                    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                            RelativeLayout.LayoutParams.WRAP_CONTENT);

RelativeLayout relatLayout = (RelativeLayout) rootView.findViewById(R.id.relatView); //change to the id of your RelativeLayout.

overviewParams.addRule(RelativeLayout.CENTER_HORIZONTAL); //or CENTER_VERTICAL, or CENTER_IN_PARENT, depending on what you want to do

gridLayout.setLayoutParams(overviewParams); //gridLayout being your GridLayout

这假设父RelativeLayout只包含一个子视图。

答案 1 :(得分:-3)

嗨,我认为这会做你想做的事:

yourLayout.setAlignmentMode(GridLayout.CENTER)