((Button) findViewById(R.id.sqrBtn)).setText(Html.fromHtml("x<sup>2</sup>"));
和
<Button style="@style/calcBtn"
android:text="@string/sqr"
android:id="@+id/sqrBtn" />
这两个都表明:
但它适用于TextView。只是按钮有这个问题(与Subscript and Superscript a String in Android不同,感谢理解)
在:
SM-G920F Galaxy S6 - Android 6.0.1(STOCK) - API v23
GT-I9100 Galaxy S2 - Android 6.0.1(CM13) - API v23
其他信息:
标签:
<style name="calcBtn">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">35sp</item>
<item name="android:layout_weight">1</item>
<item name="android:textColor">#f2f2f2</item>
<item name="android:background">#282828</item>
<item name="android:paddingTop">12dp</item>
<item name="android:paddingBottom">12dp</item>
</style>
风格:
public static IEnumerable<Tuple<TValue, string>> TraverseValuesWithPaths<T, TValue>(this IEnumerable<T> items,
Func<T, IEnumerable<T>> childSelector, Func<T, IEnumerable<TValue>> valueSelector, Func<T, string> childNameSelector, Func<TValue, string> valueNameSelector, string pathStart = null, string separator = null)
{
Func<string, string, string> pathCombine = (a, b) => string.Concat(a, separator, b);
var stack = new Stack<Tuple<T, string>>(items.Select(i => new Tuple<T, string>(i, pathCombine(pathStart, childNameSelector(i)))));
while (stack.Any())
{
var next = stack.Pop();
foreach (var child in childSelector(next.Item1))
{
stack.Push(new Tuple<T, string>(child, pathCombine(next.Item2, childNameSelector(child))));
}
var values = valueSelector(next.Item1);
if (values != null)
{
foreach (var value in values)
{
yield return new Tuple<TValue, string>(value, pathCombine(next.Item2, valueNameSelector(value)));
}
}
}
}
答案 0 :(得分:3)
在android:textAllCaps="false"
上尝试Button
。默认情况下,在Theme.Material
和Theme.AppCompat
上,您将获得所有上限,这会中断您尝试应用于Button
文字的任何格式。