我在我的應用程序中廣泛使用RelativeLayouts,並認爲我知道如何指定它們,但這讓我無所適從。我基本上將4個TextView定位在兩行中,每行兩個,每個都包含一個將提供的標籤和文本。它應該是這個樣子:Android layout_below不工作
出生:1810年8月23日梅森有限公司,肯塔基
卒於:1865年7月15日辛辛那提,漢密爾頓有限公司,俄亥俄州
這是佈局的相關部分:
<TextView android:id="@+id/birth_lbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/given_layout"
android:layout_alignLeft="@+id/given_layout"
android:layout_marginTop="6dip"
style="@style/label"
android:text="@string/born"
/>
<TextView android:id="@+id/birth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/birth_lbl"
android:layout_alignBaseline="@+id/birth_lbl"
android:layout_marginLeft="10dip"
android:layout_marginRight="6dip"
style="@style/main_text"
android:text="dd Mmm yy"
/>
<TextView android:id="@+id/death_lbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/birth"
android:layout_alignLeft="@+id/birth_lbl"
android:layout_marginTop="4dip"
style="@style/label"
android:text="@string/died"
/>
<TextView android:id="@+id/death"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/death_lbl"
android:layout_alignLeft="@+id/birth"
android:layout_alignBaseline="@+id/death_lbl"
android:layout_marginRight="6dip"
style="@style/main_text"
android:text="dd Mmm yy"
/>
由於某些原因,這會顯示死亡線視圖ABOVE出生線視圖!如果我將death_lbl視圖的規範更改爲'layout_below =「@ + id/birth_lbl」',則行的位置正確!但是,「出生」視圖可能包含多行,所以我真的需要將第二行放在「出生」下面,而不是「birth_lbl」。
任何人都知道這種行爲的原因?它既出現在Eclipse的圖形佈局編輯器中,也出現在運行Android 4.0的平板電腦的運行時。
在'id'聲明中的'+'標記應僅在'id'的第一外觀使用。您應該編輯併發布完整的佈局文件以查看您使用的額外視圖('given_layout'?)。我在模擬器中嘗試了它,併爲我的工作,但當然,我沒有額外的'given_layout'視圖。 – Luksprog 2012-02-19 19:07:15
因爲像Slukian說的那樣,你甚至不知道自己在做什麼......不管你想要什麼,都要停止使用'+',並且試着考慮你所擁有的每個+就像創造一個新的變量......它甚至很漂亮奇怪的是,編譯器並沒有對此說一句話...... – Cehm 2012-02-19 19:12:32
這裏更溫柔!當您使用「設計」時,android 21編譯器會將這些加入。我們提出問題的原因是,正如你所說,我們不知道。 – user462990 2015-01-05 17:10:39