菜单屏幕的布局会重新排列并搞砸

时间:2014-07-13 01:56:46

标签: java android xml android-layout

当我运行应用程序并且三个文本视图被填充文本时,文本视图会重新排列并且整个布局混乱。在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" />

1 个答案:

答案 0 :(得分:0)

在定义视图之前,不应尝试使用相对关系的视图 例如,在定义textView4之前,在textView2中定义layout_alignLeft="@+id/textView4" 相对布局适用于构建灵活布局,但您仍需要以逻辑方式构建它,方法是仅定义与现有视图相关的新视图。

相对于根布局定义视图1 相对于视图1或根布局定义视图2 相对于视图1,2或根布局定义视图3 等等


附加:
这样想吧。想象一下一张空桌子。

..我给你一个红色的块,告诉你把它放在桌子的中间     ..你这样做。

..我给你一个白色的块并告诉你把它放在红色块的右边     ..再说一遍,你这样做了。

..我给你一个绿色的块,并告诉你把它放在白色块的顶部     ..再次,没有问题。你这样做了。

..我给你一个蓝色的块并告诉你把它放在紫色块的左边     ..你说“我不能!!这里没有紫色块!!”