複合ウィジェットを作成するために 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 が引き伸ばされていることはわかっています。私はすでにgravity = rightを単独で取得しようとしましたが、うまくいきませんでした。
私は、XMLですでに正しい重力が設定されていて、それが機能しているビューを膨らませる同様のコードパスを持っています。だから私はどこかで何かが欠けているに違いない。