所以我知道我需要在Toast中显示。
以下是我目前创建toast的代码:
String toastFormat = "%-20s %-15s%n";
ArrayList<String> strings = new ArrayList<>();
strings.add(String.format(toastFormat, "Kultuur", "100 tera mass, g"));
strings.add(String.format(toastFormat, "Talinisu", "min. 36"));
strings.add(String.format(toastFormat, "Suvinisu", "min. 35"));
strings.add(String.format(toastFormat, "Söödaoder", "min. 38"));
StringBuilder builder = new StringBuilder();
for(String s : strings) {
builder.append(s);
}
Toast.makeText(getApplicationContext(), builder, Toast.LENGTH_LONG).show();
以下是它的样子:
正如您所看到的,第二列中的最后一个元素往往比它们应该缩进得更远。
我在这里做错了什么?
答案 0 :(得分:2)
我在这里做错了什么?
您无法控制用于Toast
的字体,通常Toast
将以比例字体显示(即不是等宽字体)。
由于Toast
接受CharSequence
,因此欢迎您为自己的Toast
尝试自定义跨度,例如those from Chris Renke。但是,我不知道哪个流程负责呈现Toast
内容,如果这不是您的流程,那么您的自定义跨度将无效。
答案 1 :(得分:2)
如果检查第二列的格式,它与frist列的距离始终相同。它看起来像无格式文本,因为第一列上的字符串具有不同的字符数。作为一种解决方法,在第一列中提供与第一列中最大字符串和该行字符串之间的字符数一样多的空格。例如:
strings.add(String.format(toastFormat, "Kultuur", " 100 tera mass, g"));
strings.add(String.format(toastFormat, "Talinisu", " min. 36"));
strings.add(String.format(toastFormat, "Suvinisu", " min. 35"));
strings.add(String.format(toastFormat, "Söödaoder", "min. 38"));
尝试更改指针,直到获得所需的方面。它很难看,但很有效。