API35中TextView垂直居中失效问题求助
Android 15(API35)TextView垂直居中偏移问题
我在Activity中通过如下代码创建TextView:
final int SIZE = 55, TEXT_SIZE = 40; float d = getResources().getDisplayMetrics().density, sd = getResources().getDisplayMetrics().scaledDensity; TextView tv = new TextView(this); LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams((int) (SIZE * sd), (int) (SIZE * sd)); llp.setMargins((int) (2 * d), (int) (2 * d), (int) (2 * d), (int) (2 * d)); llp.gravity = 0x31; tv.setLayoutParams(llp); tv.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); tv.setIncludeFontPadding(false); tv.setText(s); // 文本内容不影响 tv.setTextLocale(Locale.JAPAN); tv.setTextSize(TEXT_SIZE);
使用相同的Pixel 2硬件皮肤,分别在Android 14模拟器(API34)和Android 15模拟器(API35)中测试:
- API34效果(调试时添加蓝色背景以查看视图边界):

- API35效果:

API34中文本垂直居中,但API35中文本明显向下偏移,字体外观一致,但无法查看内部布局(如内边距),推测是文本布局逻辑发生了未公开的变更。应用目标版本为API34,文本为日文(设备系统语言为英文),这可能是相关影响因素。
我希望实现文本垂直居中(或至少保持跨版本布局一致性),请问API35是否有我遗漏的新布局参数可以解决这个问题?
内容的提问来源于stack exchange,提问作者Seva Alekseyev
相关产品推荐
相关产品推荐

