我在RelativeLayout中有一个9补丁png,一切看起来都很棒!但是,当我在RL中创建一个textView时,textView不在父级的顶部...我也在手机上测试了这个,结果相同......为什么会这样做?
感谢您的协助!
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/testLL"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/backrepeat"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="15dp"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/contentbox">
<TextView
android:text="Test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"/>
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:2)
在查看如何渲染9个补丁时,它基本上将不可伸展区域转换为默认布局填充。这是为了便于将内容轻松输入目标(可伸展)区域,而无需进入并手动定义填充。通过分配9patch,您正在使用它的填充。它根据9patch到达可伸展中心的px数量,在左上角和右上角分配填充。
您可以尝试在textView中执行类似android:paddingTop =“ - 50px”的操作,看看会发生什么。我没有测试过这个,所以我很想知道结果如何。
使用pic编辑您的评论:由于您的9patch顶级弹性区域不会以约90像素开始,因此它会自动将第一个元素填充90 px,将其置于“弹性目标”区域内。试试我的上述建议,看看它是如何工作的,我很有兴趣看看结果如何。我没有从我的手机上访问我的IDE,否则我会为你测试它;)
编辑:我道歉,我一直在说“填充”而不是保证金。但理论是一样的。不修改上述内容以永久记录我的白痴。