【发布时间】:2012-06-05 10:27:44
【问题描述】:
我正在开发一个使用 29 种不同语言的 Android 应用程序。我在资源文件夹中根据英语创建了布局,但是当语言更改时,文本视图 n 文本大小会发生变化和重叠。有什么方法可以让所有语言的布局保持不变,以便文本视图和文本的对齐方式保持不变?
【问题讨论】:
我正在开发一个使用 29 种不同语言的 Android 应用程序。我在资源文件夹中根据英语创建了布局,但是当语言更改时,文本视图 n 文本大小会发生变化和重叠。有什么方法可以让所有语言的布局保持不变,以便文本视图和文本的对齐方式保持不变?
【问题讨论】:
是的,很容易。您为每种语言创建一个值文件夹,例如 values-de 或 values-en
在每个文件夹中你可以创建strings.xml
<string name="no_items">there are no items</string>
这是给英文的。为每种语言创建它。
【讨论】:
如果您阅读了开发人员文档(此处为:http://developer.android.com/guide/topics/resources/localization.html#strategies),您可以很好地描述您的问题以及解决问题的一些方法。请参阅“设计灵活的布局”部分
你可以:
a) 为每种语言提供不同的布局,每种语言具有不同的布局文件(尽管这可能会增加您维护应用程序的大量开销)
或
b) 做一个更灵活的布局,所以当由于语言而传入长字符串时,一切都会自行调整。那么您就不必担心用户正在使用哪种语言运行(或者,如果某些布局仍然看起来不正确,您可以创建更少的特定于该语言的布局)。
【讨论】:
您可以扩展 TextView 以自动调整文本大小以适应.. 此答案中给出了自定义 TextView 的示例https://stackoverflow.com/a/3378422/886001
【讨论】: