Bru*_*ira 6 android alias dry include android-layout
我的应用程序显示单窗格UI或双窗格UI,具体取决于屏幕配置.在较小的屏幕上,它应该是纵向和横向的单窗格.在中型屏幕(任何"最小宽度"为600dp及以上)的情况下,横向方向可以很好地适应双窗格布局,但在纵向方向上,它应该使用单窗格布局.在较大的屏幕上,它应该在两个方向上使用双窗格布局.我还想支持3.2+样式限定符(如sw600dp和sw720dp)以及旧的"大小桶"限定符("xlarge").
最直接的方法是创建几个不同的XML布局文件,每个配置一个:
因此,在这8个XML文件中存在大量代码重复,这些文件基本上只描述了两个不同的布局.
如何在不必维护所有这些重复的XML文件的情况下执行此操作,这是一个维护问题?
Bru*_*ira 11
您可以使用布局别名.您应该在两个名为"onepane.xml"和"twopanes.xml"的XML文件中定义两个布局,而不是直接在每个屏幕配置的XML文件中描述您的布局.这些文件进入res/layout.
现在,您必须将这些布局映射到不同的屏幕配置,这就是"布局别名"技术派上用场的地方.对于每个屏幕限定符组合,在res/values-X/layout.xml中创建XML文件,其中X是限定符组合.在该文件中,声明一个布局资源,指向@ layout/onepane或@ layout/twopanes,视情况而定:
RES /价值观sw600dp土地/ layout.xml:
<resources>
<item name="main" type="layout">@layout/twopanes</item>
</resources>
Run Code Online (Sandbox Code Playgroud)
RES /值-sw600dp端口/ layout.xml:
<resources>
<item name="main" type="layout">@layout/onepane</item>
</resources>
Run Code Online (Sandbox Code Playgroud)
对您的其他配置组合执行相同的操作,这样您就可以完成您正在寻找的内容:您可以将两个布局(onepane和twopane)映射到多个不同的屏幕配置,而无需复制布局.
有关此内容的更多信息,请查看Android培训中的"支持多个屏幕"课程:http: //developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters