大家都知道,我们在配置布局xml文件的时候,都需要考虑该布局在横竖屏不同状态下的显示样式,尽可能的将一个xml文件即适应于横屏,又适应于竖屏。这就要求在xml文件中尽量少使用类似于“50dip”,”“13px”这样的硬性数据。看下面一个例子
该图的结构是这样的
如何确定hospitalName和maxseats之间的间隔,让maxseats距离call更近。
常规办法:
<TextView
android:id="@+id/hospital"
android:layout_alignParentLeft="true"
android:text="Hospital A"
/>
<ImageButton
android:id="@+id/call"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/hospital"
android:layout_marginRight="5dip"
/>
<TextView
android:id="@+id/maxseats"
android:layout_marginLeft="120dip"
android:layout_toRightOf="@id/hospital"
android:text="maxseats : 3"
/>
这样横屏的时候就会出现maxseats和call之间间隔过大的问题。
下面说说我偶然发现的这个做法,没什么技术含量,但是能解决问题。(也许我的这个问题对于其他人不是问题)
<TextView
android:id="@+id/hospital"
android:layout_alignParentLeft="true"
android:text="Hospital A"
/>
<ImageButton
android:id="@+id/call"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/hospital"
android:layout_marginRight="5dip"
/>
<TextView
android:id="@+id/maxseats"
android:layout_marginRight="10dip"
android:layout_toRightOf="@id/call"
android:text="maxseats : 3"
/>
总结:这两种做法的区别就是“参照物”的选择,在相对布局中选择一个合适的参照物往往能事半功倍。