有时候我们会遇到需要调整控件中的内容相对于容器的位置。这里有两种情况
1.linearlayout这样的容器中,包含button类的控件,这时候margin可以调节
2.textview中的文字内容
今天想实现一个功能,就是在一个relativelayout里面放了两个textview,但是这两个textview里面字体大小有限制,而两个字体
间距也有要求。因为relativelayout的大小是固定的,而textview里面内容跟textview又有变距。最终导致的结果就是,两个的距
离始终没办法达到要求。
尝试1.relativelayout本身的控件是可以重叠的,所以使用marginBottom,而不处理两个textview的相对位置
结果:失败
因为如果不描述两者之间的相对位置,那个textview就会置顶,如果添加了,就会在他的下面,无法调整到二者的距离很小
尝试2.使用padding
结果:顺利实现了,看了网上说的,感觉还是有点不对,padding更偏向于控件内容相对于控件边缘的位置。我的之所以实现,是因为我把textview放到relativelayout里面了,这就能使textveiew的边框非常大。
padding的另外一个用处就是:它可以调节checkbox文字跟图片的内容,这个非常的实用的
代码如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.text.MainActivity" > <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <CheckBox android:layout_below="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0000ff" android:text="dddddd" android:paddingLeft="30dp" android:paddingRight="12dp" android:paddingTop="50dp" /> </RelativeLayout>
效果你会发现,图标的位置没有变化,变化的仅仅是文字。从而得出的 结论就是
checkbox中的padding针对的是text部分,而不是image