Skip to content Skip to sidebar Skip to footer

RelativeLayout Doesn't Draw Children If Background Is Set

I have class CalloutView extended from RelativeLayout. Currently has no any methods, it just redefines constructors. I also have an XML layout for it:

Solution 1:

I tried your code but replaced your custom layout with a RelativeLayout:

RelativeLayout calloutView = (RelativeLayout) ((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.main, null);
        calloutView.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, 105));
        calloutView.measure(MeasureSpec.makeMeasureSpec(400, MeasureSpec.AT_MOST),  MeasureSpec.makeMeasureSpec(105, MeasureSpec.EXACTLY));

        setContentView(calloutView);

And the xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="70dp"
    android:background="@drawable/ic_launcher">

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dp"
        android:layout_marginTop="6dp"
        android:background="#ff0000"
        android:src="@drawable/ic_launcher"
         />

</RelativeLayout>

It works fine:

screenshot

Therefore, this must be something about your layout. Make sure that in your redefined constructors, your call the super constructors first.


Solution 2:

It looks like a bug in Android 2.3.3. I use my PNG file as NinePatch as background, I get this issue. If I use another NinePatch, everything works like it should.

I can't reproduce this issue on Android 3.1.


Post a Comment for "RelativeLayout Doesn't Draw Children If Background Is Set"