我正在扩展一个 LinearLayout 来制作一个复合小部件。小部件设置为 layout_width="MATCH_PARENT"。
mLabelTextView = new TextView(context);
mLabelTextView.setText("Testing");
LayoutParams labelParams = new
LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, 0.0f);
labelParams.gravity = Gravity.CENTER_VERTICAL;
addView(mLabelTextView, labelParams);
mContentView = new Checkbox(content);
contentParams = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1.0f);
contentParams.gravity = Gravity.CENTER_VERTICAL | Gravity.Right;
addView(mContentView, contentParams);
我的问题是 Gravity.Right 属性对 mContentView 生效,但 Gravity.CENTER_VERTICAL 是。我知道 mContentView 被拉伸以填充剩余空间。我已经尝试过让重力=正确,但没有奏效。
我有一个类似的代码路径,在其中我膨胀了一个已经在 XML 中设置了正确重力并且正在工作的视图。所以我一定在某个地方遗漏了一些东西。