我希望垂直对齐CheckBox
及其文字/标签。
我以编程方式添加复选框,如下所示:
private LinearLayout ProposalLayout;
ProposalLayout = (LinearLayout) findViewById(R.id.ll_proposals);
this.ProposalLayout = ProposalLayout;
Iterator<Proposal> iter = q.getListProposals().iterator();
while (iter.hasNext()) {
Proposal p = iter.next();
CheckBox cb = new CheckBox(activity);
cb.setText(p.getProposal());
cb.setId(p.getId());
ProposalLayout.addView(cb);
}
这是我的布局:
<LinearLayout
android:id="@+id/ll_proposals"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<CheckBox
android:layout_width="wrap_content"
android:layout_height="60dp"
android:text="New CheckBox"
android:id="@+id/checkBox" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="70dp"
android:text="New CheckBox"
android:id="@+id/checkBox2" />
</LinearLayout>
布局中添加的CheckBox
很好。以编程方式添加的第一个很棒但是其他的不是垂直对齐的(它们的标签)。
编辑: 当我更换时,它完全对齐:
cb.setText(p.getProposal());
由:
cb.setText("test test test");
问题出在XML文件中,有一个换行符,我只是没有在日志中看到它。
答案 0 :(得分:0)
为您的复选框定义布局参数,然后将它们设置为参数。首先是布局参数:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER_VERTICAL;
然后添加视图:
ProposalLayout.addView(cb, params);
答案 1 :(得分:0)
试试这个..
在XML
中将CheckBox
的高度设置为wrap_content
android:layout_height="70dp"
到
android:layout_height="wrap_content"
答案 2 :(得分:0)
您可以使用Thomas R.建议的解决方案。它应该可行。或者你可以试试我的:
...
while (iter.hasNext()) {
...
cb.setParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
...
}
并添加
<LinearLayout
...
android:gravity="left">