How do I enforce a circular reference in a RelativeLayout?

A circular reference is the thing you want to avoid. But to solve your problem just switch the definition of your Button and ImageView so that the ImageView you're refering in the Button is defined first. For some reasons it is not possible to do it the other way round.

Additionally I would always use the same refernence type. So in your case: "@+id/imgArrow"


The first time you reference an ID, use the @+ prefix, which tells the resource builder to add the ID, rather than trying to find it. So try:

android:layout_toLeftOf="@+id/imgArrow"