簡體   English   中英

Android layout_below無效

[英]Android layout_below not working

我在我的應用程序中廣泛使用RelativeLayouts,並認為我知道如何指定它們,但這讓我感到茫然。 我基本上將4個TextView放在兩行,每行兩行,每行包含一個標簽和將要提供的文本。 它應該看起來像:

出生: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"
        />

由於某種原因,這顯示出生線視圖上方的死亡線視圖! 如果我將death_lbl視圖的規格更改為'layout_below =“@ + id / birth_lbl”',則行正確定位! 但是,“出生”視圖可以換行到多行,所以我真的需要將第二行放在“出生”下面,而不是“birth_lbl”。

有人知道這種行為的原因嗎? 它出現在Eclipse的Graphical Layout編輯器和運行Android 4.0的平板電腦的運行時。

嘗試將android:layout_below="@+id/birth" death_lblandroid:layout_below="@id/birth" ,因為此時它已經被聲明, +暗示,它可能會在再次聲明時導致問題。

我也遇到了同樣的問題,因為我使用的是約束布局,但align_below僅適用於相對布局 所以檢查你正在使用的布局。

如果修復你的+符號沒有幫助,你可以隨時將你的id/death定位在id/birth之下,然后將id/death_label置於leftOf id/death

我實際上能夠通過僅使用那些字段編寫臨時layout來復制這種現象,並且如果我沒有將初始birth_lbl視圖相對birth_lbl視圖定位,則能夠確定問題消失了(“given_layout”在此案件)。

所以我不確定這是否被歸類為修復,變通方法或者kludge(現在仍然是一個詞?),但我所做的是將文本視圖放在他們自己的RelativeLayout並定位RelativeLayout相對到id/given_layout 無論如何,它有效......

您的問題是您在相對布局上調用屬性,就好像您再次聲明它一樣。

當您為視圖聲明ID時,它應該像這個android:id="@+id/button"並且當您希望Android將該特定視圖放置在相對布局中的任何其他視圖的上方或下方時,您必須調用它喜歡這個android:layout_below="@id/textview"

這告訴android你聲明了一個帶有id按鈕的按鈕並希望它位於textview下面,記住不要使用@+id來定位視圖使用@id代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM