在单个 TextView 中等边距或 space
equal margin or space in a singe TextView
我使用单个 textView 来显示类似的视图。由于 UpCase 字母和整数采用不同的边距或填充,它们没有正确对齐我正在尝试添加
name: AnyName
age: 23
caseId: anyID
然后
setColor(caseByTv, "By:	" + caseDetail.getUpdatedByUser().trim(), 0, 3, 0xFF777777);
setColor(serviceTypeTv, "Type:\t\t" + caseDetail.getType().trim(), 0, 5, 0xFF777777);
setColor(updatedDateTv, "Updated:\u0009\u0009" + caseDetail.getUpdatedOnDate().trim(), 0, 8, 0xFF777777);
setColor(orderDetailTv, "Order #\u0009\u0009" + caseDetail.getOrderNumber().trim(), 0, 8, 0xFF777777);
setColor(nameTv, "Name: " + caseDetail.getName().trim(), 0, 8, 0xFF777777);
setColor(emailTv, "Email: " + caseDetail.getEmail().trim(), 0, 7, 0xFF777777);
setColor(phoneNoTv, "Phone: " + caseDetail.getPhone().trim(), 0, 7, 0xFF777777);
setColor(categoryTypeTv, "Category: " + caseDetail.getCaseCategory().trim(), 0, 10, 0xFF777777);**strong text**
其中设置颜色
public void setColor(TextView view, String fulltext, int startIndex, int endIndex, int color) {
Spannable str = new SpannableString(fulltext);
str.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.guest_connection_grey)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(str);
}
我尝试了多种添加标签的方法。首先,选项卡不工作,没有显示 space,我知道我可以通过连续使用两个 textView 来实现它。我可以通过这种方式实现我的目标吗?
试试这个
tvSaveText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
StringBuilder order = new StringBuilder();
order.append(rightSpace(30, "10302351"));
order.append("30");
Log.e("RESULT1",order.toString());
StringBuilder order2 = new StringBuilder();
order2.append(rightSpace(30, "10"));
order2.append("30");
Log.e("RESULT2",order2.toString());
StringBuilder order3 = new StringBuilder();
order3.append(rightSpace(30, "nilesh rathod"));
order3.append("Nilesh");
Log.e("RESULT3",order3.toString());
}
});
rightSpace()
函数
public StringBuilder rightSpace(int max, String name) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(name);
for (int i = 0; i < max - name.length(); i++) {
stringBuilder.append(" ");
}
return stringBuilder;
}
输出
E/RESULT1: 10302351 30
E/RESULT2: 10 30
E/RESULT3: nilesh rathod Nilesh
我使用单个 textView 来显示类似的视图。由于 UpCase 字母和整数采用不同的边距或填充,它们没有正确对齐我正在尝试添加
name: AnyName
age: 23
caseId: anyID
然后
setColor(caseByTv, "By:	" + caseDetail.getUpdatedByUser().trim(), 0, 3, 0xFF777777);
setColor(serviceTypeTv, "Type:\t\t" + caseDetail.getType().trim(), 0, 5, 0xFF777777);
setColor(updatedDateTv, "Updated:\u0009\u0009" + caseDetail.getUpdatedOnDate().trim(), 0, 8, 0xFF777777);
setColor(orderDetailTv, "Order #\u0009\u0009" + caseDetail.getOrderNumber().trim(), 0, 8, 0xFF777777);
setColor(nameTv, "Name: " + caseDetail.getName().trim(), 0, 8, 0xFF777777);
setColor(emailTv, "Email: " + caseDetail.getEmail().trim(), 0, 7, 0xFF777777);
setColor(phoneNoTv, "Phone: " + caseDetail.getPhone().trim(), 0, 7, 0xFF777777);
setColor(categoryTypeTv, "Category: " + caseDetail.getCaseCategory().trim(), 0, 10, 0xFF777777);**strong text**
其中设置颜色
public void setColor(TextView view, String fulltext, int startIndex, int endIndex, int color) {
Spannable str = new SpannableString(fulltext);
str.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.guest_connection_grey)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(str);
}
我尝试了多种添加标签的方法。首先,选项卡不工作,没有显示 space,我知道我可以通过连续使用两个 textView 来实现它。我可以通过这种方式实现我的目标吗?
试试这个
tvSaveText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
StringBuilder order = new StringBuilder();
order.append(rightSpace(30, "10302351"));
order.append("30");
Log.e("RESULT1",order.toString());
StringBuilder order2 = new StringBuilder();
order2.append(rightSpace(30, "10"));
order2.append("30");
Log.e("RESULT2",order2.toString());
StringBuilder order3 = new StringBuilder();
order3.append(rightSpace(30, "nilesh rathod"));
order3.append("Nilesh");
Log.e("RESULT3",order3.toString());
}
});
rightSpace()
函数
public StringBuilder rightSpace(int max, String name) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(name);
for (int i = 0; i < max - name.length(); i++) {
stringBuilder.append(" ");
}
return stringBuilder;
}
输出
E/RESULT1: 10302351 30
E/RESULT2: 10 30
E/RESULT3: nilesh rathod Nilesh