如何设置以编程方式创建的复选框的文本在左侧而不是右侧的对齐框中对齐。以下是代码段:
it('db.connection.connect should return a connection object using default config.js credentials ', function(){
var result = "FAIL!";
db.connection.connect(function(err, result) {
if(err){
console.log("SQL CONNECT ERROR: " + err);
result=(err);
} else {
console.log("SQL CONNECT SUCCESSFUL.");
result = "SQL CONNECT SUCCESSFUL.";
//console.log("Test succeeded but result should show fail");
}
});
expect(result).to.equal("SQL CONNECT SUCCESSFUL.");
});
上面的代码导致复选框右侧显示的文字。
如何在复选框的左侧显示文字?
答案 0 :(得分:1)
您需要更改以下内容
check1.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
在这一行中,您使用的是ActionBar参数,然后是LinearLayoutCompat参数。尝试坚持1类,并在自定义视图中像LinearLayout那样只需要复选框。
更新1:
您应该使用CheckedTextView。我已经使用了标准的android drawable,但你也可以使用自定义的Check框设计。
所以你的整体代码看起来像 -
final CheckedTextView check1 = new CheckedTextView(getApplicationContext());
check1.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
check1.setId(fieldNo);
check1.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
check1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (check1.isChecked()){
check1.setChecked(false);
check1.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
}else{
check1.setChecked(true);
check1.setCheckMarkDrawable(android.R.drawable.checkbox_on_background);
}
}
});
check1.setTextColor(Color.BLACK);
check1.setGravity(Gravity.LEFT);
check1.setText(formField.get(fieldNo));
答案 1 :(得分:0)
您可以通过将复选框的文本设置为null或为空来实现此目的,只需在其左侧添加TextView即可。我知道这不是你正在寻找的解决方案,坦率地说我自己对此并不十分满意。但是,如果您迫切希望解决问题,它将会奏效。 您可以将OnClickListener添加到TextView以获得更好的UX。否则,点击TextView将不会选择CheckBox。