Search code examples
androidandroid-layoutandroid-relativelayout

Android Relative Layout Error


I have to test design with the UI. I'm getting error on Run time. It's just UI only. No functionality. I want to show this two relative layouts in horizontally.

Updated: I finally find out that after removing @color/tile_text in below code. It's working. What is wrong with my tile_text.xml?

Here is my code.

tile_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#01B275" />
    <item android:state_enabled="false" android:color="#01B275" />
    <item android:color="@color/tile_text" />
</selector>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp">

        <RelativeLayout
            android:id="@+id/Relative1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="10dp">

            <TextView
                android:id="@+id/title_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="7dp"
                android:maxLines="5"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:paddingTop="7dp"
                android:text="Title Text"
                android:textColor="@color/tile_text"
                android:textSize="14sp" />

            <TextView
                android:id="@+id/my_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/title_text"
                android:layout_marginBottom="3dp"
                android:ellipsize="end"
                android:maxLines="1"
                android:paddingBottom="7dp"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:text=""
                android:textSize="12sp" />
            <!--                 android:textColor="#9B9BA5" -->
            <TextView
                android:id="@+id/seperator"
                android:layout_width="fill_parent"
                android:layout_height="1px"
                android:layout_below="@+id/my_text" />
            <!-- android:background="#939393"  -->

            <Button
                android:id="@+id/btn_save"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/seperator"
                android:background="@android:color/transparent"
                android:drawableRight="@drawable/ic_unsave"
                android:minHeight="0dp"
                android:minWidth="0dp"
                android:paddingBottom="5dp"
                android:paddingRight="7dp"
                android:paddingTop="5dp" />

            <Button
                android:id="@+id/btn_like"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/seperator"
                android:background="@android:color/transparent"
                android:drawableLeft="@drawable/ic_unlike"
                android:drawablePadding="5dp"
                android:minHeight="0dp"
                android:minWidth="0dp"
                android:paddingBottom="5dp"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:paddingTop="5dp"
                android:text=""

                android:textSize="14sp" />

            <!--                 android:textColor="#01B275"-->
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/Relative2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingLeft="10dp">

            <TextView
                android:id="@+id/title_text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="7dp"
                android:maxLines="5"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:paddingTop="7dp"
                android:text="Title Text"
                android:textColor="@color/tile_text"
                android:textSize="14sp" />

            <TextView
                android:id="@+id/my_text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/title_text2"
                android:layout_marginBottom="3dp"
                android:ellipsize="end"
                android:maxLines="1"
                android:paddingBottom="7dp"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:text=""

                android:textSize="12sp" />
            <!--         android:textColor="#9B9BA5" -->
            <TextView
                android:id="@+id/seperator2"
                android:layout_width="fill_parent"
                android:layout_height="1px"
                android:layout_below="@+id/my_text2" />
            <!--             android:background="#939393"-->

            <Button
                android:id="@+id/btn_save2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/seperator2"
                android:background="@android:color/transparent"
                android:drawableRight="@drawable/ic_unsave"
                android:minHeight="0dp"
                android:minWidth="0dp"
                android:paddingBottom="5dp"
                android:paddingRight="7dp"
                android:paddingTop="5dp" />

            <Button
                android:id="@+id/btn_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/seperator2"
                android:background="@android:color/transparent"
                android:drawableLeft="@drawable/ic_unlike"
                android:drawablePadding="5dp"
                android:minHeight="0dp"
                android:minWidth="0dp"
                android:paddingBottom="5dp"
                android:paddingLeft="7dp"
                android:paddingRight="7dp"
                android:paddingTop="5dp"
                android:text=""

                android:textSize="14sp" />
            <!--                 android:textColor="#01B275" -->
        </RelativeLayout>

    </RelativeLayout>



</RelativeLayout>

Log

07-08 13:49:53.300  22128-22128/com.example.test.sampleapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.StackOverflowError
            at android.util.SparseArray.get(SparseArray.java:82)
            at android.util.SparseArray.get(SparseArray.java:73)
            at android.content.res.StringBlock.get(StringBlock.java:70)
            at android.content.res.AssetManager.getResourceValue(AssetManager.java:202)
            at android.content.res.Resources.getValue(Resources.java:1114)
            at android.content.res.Resources.getColor(Resources.java:800)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243)
            at android.content.res.Resources.getColor(Resources.java:812)
            at android.content.res.ColorStateList.inflate(ColorStateList.java:224)
            at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
            at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
            at android.content.res.Resources.loadColorStateList(Resources.java:2243

Solution

  • Add

    android:layout_toRightOf="@+id/Relative1"
    

    To your second layout.

    Also you can switch parent layout to LinearLayout with

    android:orientation="horizontal"
    

    You're getting error, because following resources don't exist:

    @drawable/ic_unsave
    @drawable/ic_unlike
    @color/tile_text
    @color/tile_text