Thanks, Piren. Unfortunately none of that helps, as sometimes you really need things to work as they should. In my case it is A and B that are fixed, and C has to depend on them.
I resorted to messing about with Font Metrics, working out manual displacements based on font size, which is pretty messy. Honestly I don’t see why this should be a dependency issue, when layout_alignBottom which does exactly the same thing (but without the vertical offset) works fine, C happily sits above B if B is aligned to A's bottom, rather than its baseline. However, that led me to find a little quirk, if you align B to A using simultaneous layout_alignBottom and layout_alignBaseline flags, then C’s positioning now works, it happily sits above B exactly as if just layout_alignBottom was being used, although B is still aligned to A’s baseline. The caveat is that C’s positioning is sligthty lower than normal; it behaves as if the B is aligned to A’s bottom, then C is positioned, and then B is realigned to A’s baseline, without C changing position. However I can get round that with some margin offsets, and at least it can be done via XML. On Tuesday, May 21, 2013 11:37:51 PM UTC+8, Piren wrote: > I'm not too sure why this is happening... i'm guess that alignBaseline > affects measuring differently and causes a cyclic dependency (Romain?) > > Try changing the relationships so you'll define A and B Below C instead, > since C has a constant location anyhow. > > Also if your View hierarchy isnt too complex and wouldn't need to be > refreshed too often, you can let yourself use more ViewGroups (use a > linearlayout to divide the top and the bottom views)... Although that > increases the amount of views you have and makes the rendering tree bigger, > it will be easier for you to read the XML and understand the behavior and > also prevent this weird behavior. > > On Tuesday, May 21, 2013 5:49:20 PM UTC+3, Dusk Jockeys Android Apps wrote: >> >> I have a layout issue which it seems should be simple to do in a >> RelativeLayout. >> >> I have a view A, and a view B which is aligned to A's baseline, and >> aligned to the right of the parent. B appears correctly. >> >> Then I want a view C to be directly above B, and also aligned to the >> right of the parent. However, C never appears. >> >> However, if I change B to be aligned to the *bottom* of A, as opposed to >> its *baseline*, then C appears. >> >> So it seems that layout_above doesn't like to act upon something that >> references another view via layout_alignBaseline, but is fine acting upon >> something that references another View via layout_alignBottom. >> >> Can anyone shed any light upon this? It seems like it is a common >> scenario that should work. See the following. >> >> <?xml version="1.0" encoding="utf-8"?> >> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android >> " >> android:id="@+id/mainlayout" >> android:layout_width="fill_parent" >> android:layout_height="fill_parent" >> android:orientation="vertical" > >> <TextView >> android:id="@+id/A" >> android:layout_width="wrap_content" >> android:layout_height="wrap_content" >> android:text="A" >> android:textColor="@android:color/white" >> android:textSize="182dp" /> >> <TextView >> android:id="@+id/B" >> android:layout_width="wrap_content" >> android:layout_height="wrap_content" >> android:layout_alignBaseline="@id/A" >> android:layout_alignParentRight="true" >> android:text="B" >> android:textColor="@android:color/white" >> android:textSize="26dp" /> >> <TextView >> android:id="@+id/C" >> android:layout_width="wrap_content" >> android:layout_height="wrap_content" >> android:layout_alignParentRight="true" >> android:layout_above="@id/B" >> android:text="C never appears!" >> android:textColor="@android:color/white" >> android:textSize="20dp" /> >> </RelativeLayout> >> >> Regards, >> James >> > -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

