当我运行应用程序并且三个文本视图被填充文本时,文本视图会重新排列并且整个布局混乱。在sdk中,布局是应该如何,但是一旦应用程序运行并且文本视图被文本填充,布局就会搞砸。我认为这与它是相对布局有关,但不确定。有人可以帮我解决这个问题吗?谢谢 这是我的XML代码:
<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:background="@drawable/background" >
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.firstapp.Menu$PlaceholderFragment" >
<TextView
android:id="@+id/txtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Main Menu"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView7"
android:layout_alignBottom="@+id/textView7"
android:layout_alignParentRight="true"
android:layout_marginRight="23dp"
android:text="Logout" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="200dip"
android:layout_below="@+id/textView5"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:text="Courses" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/button2"
android:text="User Type:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/name"
android:layout_alignLeft="@+id/textView4"
android:text="Name:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/organization"
android:layout_alignBottom="@+id/organization"
android:layout_alignLeft="@+id/textView5"
android:text="Organization:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/usertype"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button2"
android:layout_alignRight="@+id/button2"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/organization"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/usertype"
android:layout_alignLeft="@+id/usertype"
android:layout_marginBottom="18dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/organization"
android:layout_below="@+id/txtView"
android:layout_marginTop="15dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/button2"
android:text="LogOut" />
答案 0 :(得分:0)
在定义视图之前,不应尝试使用相对关系的视图
例如,在定义textView4之前,在textView2中定义layout_alignLeft="@+id/textView4"
相对布局适用于构建灵活布局,但您仍需要以逻辑方式构建它,方法是仅定义与现有视图相关的新视图。
相对于根布局定义视图1 相对于视图1或根布局定义视图2 相对于视图1,2或根布局定义视图3 等等
附加:
这样想吧。想象一下一张空桌子。
..我给你一个红色的块,告诉你把它放在桌子的中间 ..你这样做。
..我给你一个白色的块并告诉你把它放在红色块的右边 ..再说一遍,你这样做了。
..我给你一个绿色的块,并告诉你把它放在白色块的顶部 ..再次,没有问题。你这样做了。
..我给你一个蓝色的块并告诉你把它放在紫色块的左边 ..你说“我不能!!这里没有紫色块!!”