Search code examples
androidxmlandroid-layoutlayout

Android Layout Below and Above


I got three TextViews. The first and the third are defined with a not changing Text. The second, the TextView between the first and the third gets the value with an input. How can I set the second TextView between the first and the third in the layout?

<TextView
android:id="@+id/secondtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/firsttext"
android:layout_above="@+id/thirdtext"
android:layout_alignLeft="@+id/firsttext"
android:layout_alignRight="@+id/thirdtext"
android:background="@drawable/border"
android:scrollbars="vertical"
android:textAppearance="?android:attr/textAppearanceMedium" />

That doesn't work!

<TextView
        android:id="@+id/secondtext"
        android:layout_width="282dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/firsttext"
        android:layout_below="@+id/firsttext"
        android:background="@drawable/border"
        android:ellipsize="marquee"
        android:lines="4"
        android:scrollbars="vertical"
        android:textAppearance="?android:attr/textAppearanceMedium" />

That also doesn't work


Solution

  • Too many dependencies, check if you are getting any circular dependency error in xml. As per your requirement, without specifying the spacing and other UI details, a solution:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/black" >
    
        <TextView
            android:id="@+id/firsttext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:text="first"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    
        <TextView
            android:id="@+id/secondtext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/firsttext"
            android:background="@android:color/white"
            android:text="second"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    
        <TextView
            android:id="@+id/thirdtext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/secondtext"
            android:background="@android:color/white"
            android:text="third"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    
    </RelativeLayout>