该项目支持RTL;特别是阿拉伯语。\n要求是,即使语言选择为阿拉伯语区域设置,所有数字也必须以英语格式显示,在 TextView 的情况下,我们在任何地方实现它的方式通常是以下代码:
\nTextView t = findViewById(R.id.sampleTV);\nt.setText(String.format("123",Locale.US));\n
Run Code Online (Sandbox Code Playgroud)\n这里 123 将显示为“123”,因为我们在美国语言环境中将其格式化为硬编码,而不是“\xd9\xa1\xd9\xa2\xd9\xa3”
\n我想对 Android Material 组件的底部导航提供的徽章通知实现相同的效果,这是我尝试过的:
\nif(navigation!=null) { \n NumberFormat nf = NumberFormat.getInstance(Locale.US);\n\n BadgeDrawable badgeDrawable = navigation.getOrCreateBadge(R.id.nav_account);\n if (badgeDrawable != null) {\n if((counterNoti + counter + counterRoom) <= 0) {\n badgeDrawable.setVisible(false);\n badgeDrawable.clearNumber();\n }\n else\n {\n int x = counterNoti + counter + counterRoom;\n nf.format(x);\n badgeDrawable.setVisible(true);\n badgeDrawable.setNumber(x);\n }\n}\n\n(where navigation is reference to my BottomNavigation!)\n
Run Code Online (Sandbox Code Playgroud)\n但即便如此,数字仍以阿拉伯语显示,与 setText 的情况不同。有没有办法实现这一点或者我需要替代方案?
\n感谢您的投入和时间!谢谢。
\nandroid localization badge material-components-android android-bottomnavigationview