我有一个带有占位符的字符串,例如
<string name="str_1">Hello %s</string>
Run Code Online (Sandbox Code Playgroud)
我想在 xml 布局中使用它作为 android:text="@string/str_1"。有没有办法在 xml 布局中使用它来填充占位符?提前致谢。我已经知道 java/kotlin 中的 String.format(str,str...) 但我想在 xml 布局中使用它而不需要数据绑定。
string android android-layout android-xml android-xml-attribute
有没有人知道使用sp单位作为布局尺寸的任何问题?所以,假设我有一个16sp文本,将TextView高度设置20sp为例如有什么问题,所以它会随着文本缩放?
<TextView
android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="20sp"
...
Run Code Online (Sandbox Code Playgroud)
这样,文本周围的填充在缩放后与文本大小成比例。此外,这对于自动调整大小很有用,wrap_content不推荐使用。
但是,官方文档指出sp永远不应用于文本大小(尽管没有任何解释):
但是,在定义文本大小时,您应该改为使用可缩放像素 (sp) 作为单位(但切勿将 sp 用于布局大小)。
这背后的原因是什么?两个dpS和sps的转换为某设备特定的像素量,最终,不是吗?那么核心区别是什么?
Android Studio 3.5.3 for Linux 中的一个警告让我很恼火,这是我第一次尝试。我正在按照 Android 教程创建一个交互式骰子滚轴应用程序,在第三步中,它表示可以通过更改布局编辑器中“声明的属性”菜单上的属性“文本”来更改按钮的文本。
问题是:我的列表中没有这样的属性。
部分解决方案:我可以在活动 xml 中更改它。有一个名为 android:text 的属性。更改此属性也会更改设计窗口中的文本,并且构建时也不会发出警告。
无论如何,在 xml 文件上会发出此警告:
未知属性 android:text
检查信息:此检查突出显示 Android 资源文件和 AndroidManifest.xml 中未知的 XML 属性
我找不到任何解决方案来摆脱它。我尝试清空/使缓存无效(即使它是一个新项目),删除 AndroidStudio3.5/system/caches 和 gradle/caches 中的所有内容,重新同步 gradle,删除 .idea 文件夹并最终重新安装 Android Studio,但没有任何运气。
这也适用于具有相同属性的其他元素,如 TextView、EditText 或 CheckBox。属性 android:ems 也会受到此警告的影响。无论哪种情况,它似乎都不会给设计师或建造者造成问题,所以我想我可以忽略这个警告,但无论如何我想知道为什么会发出它。
未知属性 android:activity_main.xml 上突出显示的文本
编辑:我的Sdk Build-Tools版本是33(这是标准安装附带的版本,我没有更改它)
android-layout android-xml android-studio android-xml-attribute android-studio-3.5