0

我有以下佈局文件,通過一個片段顯示:以下佈局有什麼問題?它不是在5.1中的android中集中相關的佈局。看起來很好,在設計窗口

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:id="@+id/add_printer_fragment_inner_rl" 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:layout_gravity="center" 
     android:layout_centerInParent="true" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true"> 

     <ImageView 
      android:layout_centerInParent="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_loading_dark" 
      android:id="@+id/add_printer_fragment_iv" 
      android:layout_centerVertical="true" 
      android:layout_centerHorizontal="true" /> 

     <TextView 
      android:text="TextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/add_printer_fragment_tv" 
      android:layout_below="@+id/add_printer_fragment_iv" 
      android:layout_centerHorizontal="true" /> 
    </RelativeLayout> 
</RelativeLayout> 

的設計窗口顯示正確的渲染:

enter image description here

然而,實際的設備上運行的是Android 5.1 .1,呈現如下: enter image description here

我一直無法弄清楚爲什麼。有人可以幫我弄這個嗎?我已經嘗試了許多CENTERIZATION參數(重力,layout_gravity,更多我不記得)。我通過使用LinearLayouts的組合來集中處理了一個解決方法,但佈局看起來也很麻煩,也做了這麼簡單的任務。所以,我正在尋找簡單的解決方案。

+0

如果您可以對單個TextView執行相同操作,那麼您需要嵌套的RelativeLAyout,ImageView和TextView? Keword:**簡單**。 –

+0

@Rotwang爲我稍後需要的其他安排嵌套相對佈局。這不僅僅是爲了它。抱歉。 –

+0

但是你仍然可以刪除ImageView,因爲TextView可以包含**複合可繪製**。我猜你實際上並不需要留在內部RelativeLayout外部的RelativeLayout。嵌套佈局會降低性能。以及不必要的意見。 –

回答

2

設計窗口有時顯示在中間,但在現實(手機/表)佈局的結果是不是...解決它與代碼

android:layout_centerInParent="true" 

有時設計窗口中顯示的東西的一種方式在中間屏幕,但在實際不是..一個例子是當你做一個適配器的項目佈局..

0

這不是一個真正的答案,但我沒有足夠的代表意見,但:

你的片段的活動佈局文件如何被添加到看起來像è?

E.g你的碎片容器是否真的是Match_Parent?如果它在你的活動中包裝內容,它會覆蓋你給我們的佈局文件中的Match_Parent。