Android 在固定宽度线性布局中对齐子对象

Android 在固定宽度线性布局中对齐子对象,android,android-layout,android-linearlayout,Android,Android Layout,Android Linearlayout,我无法将使用固定宽度的线性布局中的子对象居中对齐。据我所知,这应该可以通过在线性布局上设置重力标志来实现,但它似乎不起作用 代码如下: LinearLayout hbox = new LinearLayout(getContext()); hbox.setOrientation(LinearLayout.HORIZONTAL); TypedValue typedValue = new TypedValue(); getC

我无法将使用固定宽度的
线性布局中的子对象居中对齐。据我所知,这应该可以通过在
线性布局上设置
重力
标志来实现,但它似乎不起作用

代码如下:

LinearLayout hbox = new LinearLayout(getContext());                                     
hbox.setOrientation(LinearLayout.HORIZONTAL);

TypedValue typedValue = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.listChoiceIndicatorMultiple, typedValue, true);         

CheckedTextView ctv = new CheckedTextView(getContext());            
ctv.setCheckMarkDrawable(typedValue.resourceId);

params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ctv.setLayoutParams(params);

hbox.addView(ctv);

params = new LinearLayout.LayoutParams(200, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
hbox.setLayoutParams(params);   
如您所见,
CheckedTextView
使用
WRAP\u内容
,因此应该可以对齐它。其父级
LinearLayout
使用200像素的固定宽度,并将
gravity
设置为
gravity.CENTER
。尽管如此,它并没有居中对齐,但复选框始终显示在
线性布局的左侧,而不是居中


有人知道哪里出了问题吗?

回答我自己的问题,设置
参数。重力
是错误的,因为这对应于其父对象内的
hbox
对齐。但是,我想要的是设置
hbox
的子对象的对齐方式,因此必须如下所示:

params = new LinearLayout.LayoutParams(200, LayoutParams.WRAP_CONTENT);
hbox.setLayoutParams(params);
hbox.setGravity(Gravity.CENTER);
然后它就起作用了