工作中发现的相对布局中的一个小技巧

时间:2022-08-26 16:07:49

大家都知道,我们在配置布局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"       
            />

 

总结:这两种做法的区别就是“参照物”的选择,在相对布局中选择一个合适的参照物往往能事半功倍。