2013-07-06 60 views
1

我試圖設計我的界面,使用weight屬性爲了在不同的屏幕尺寸上獲得不錯的視圖。 基本上,我使用一個包含3個RelativeLayouts(標題,內容和頁腳)的垂直LinearLayout。我希望頁眉和頁腳分別爲15%和70%的高度。但是,例如,當我在頭文件中設置了一個小部件,並且alignParentBottom =「true」時,所有東西都混亂起來。如果我使用height =「fill_parent」的小部件,則頭部填充所有LinearLayout也是同樣的問題!RelativeLayout alignParentBottom與android_weight的衝突

[編輯]:我使用NoActionBar主題,似乎與我的問題有關,如果我更改爲默認主題,它會修復問題。可是,我真的需要隱藏動作條...

我有什麼: layout messes up

我會想做什麼: layout OK

的問題是,例如,我想將日期定位在標題底部...

下面是標題的簡化代碼:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:background="@drawable/fond_header" 
    android:layout_weight=".2" > 

    <TextView 
     android:id="@+id/dateForm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" 
     android:textSize="20sp" 
     android:layout_marginBottom="2dp" 
     android:background="@drawable/fond_date_header" /> 

</RelativeLayout> 

這裏的頁腳:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:background="@drawable/fond_header" 
    android:layout_weight=".2" > 

    <ImageButton 
     android:id="@+id/retourBouton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/menu" 
     android:src="@drawable/retour" /> 

</RelativeLayout> 

,這裏是全接口的簡化代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="1.0" > 

    <include layout="@layout/header" /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.6" > 
    </RelativeLayout> 

    <include layout="@layout/footer" /> 

</LinearLayout> 

任何想法?

由於通過提前

瓦倫丁

+0

必須代碼。當我使用迄今發佈的代碼時,它會按照您的需要顯示。 –

+0

對不起,我忘了發佈頁腳代碼... – ValentinH

+0

基本上,我已經注意到,我在頁腳內寫入的所有內容都會混淆界面..:/但它仍然是因爲標題中的alignParentBottom,就像我刪除它,一切順利...這是與頁面上的部件alignParentTop相同的問題 – ValentinH

回答

0

我發現時的權重是相同的佈局文件,這樣更容易閱讀:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:weightSum="1.0" > 

    <include layout="@layout/header" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight=".2"/> 

    <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight=".6" > 
    </RelativeLayout> 

    <include layout="@layout/footer" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight=".2" /> 
</LinearLayout> 

在頁眉和頁腳我刪除layout_weight,並將高度/寬度設置爲match_parent。主佈局將覆蓋這些。

更新:增加了頁眉+頁腳。

頁眉:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@android:color/darker_gray"> 
    <TextView 
      android:id="@+id/dateForm" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentBottom="true" 
      android:textSize="20sp" 
      android:text="Some Text" 
      android:layout_marginBottom="2dp" 
      android:textColor="@android:color/black" 
      android:background="@android:color/white" /> 
</RelativeLayout> 

頁腳:未尚未發佈

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@android:color/darker_gray"> 

    <ImageButton 
      android:id="@+id/retourBouton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentBottom="true" 
      android:src="@drawable/ic_launcher" 
      android:background="@android:color/holo_orange_light" 
      android:contentDescription=""/> 

</RelativeLayout> 
+0

我認爲這是更容易閱讀。不幸的是,它不能解決問題...... – ValentinH

+0

好吧,我更新了答案,以顯示我必須做的頁眉和頁腳的修改,因爲我沒有引用您的資源。也許它與android:background =「@ drawable/fond_header」有關? –

+0

這真的很奇怪,因爲如果我使用你的代碼,它也行不通... – ValentinH