2012-05-23 85 views
7

我有與保持在頂部一個TextView,一個的LinearLayout在中間和在底部的按鈕(其與的CheckBox dynammically填充的)一個RelativLayout的片段。RelativeLayout的內部滾動型與allignParentBottom

問題是如果添加太多CheckBox,我需要滾動。該按鈕使用attribut layout_alignParentBottom進行調整,並顯示在屏幕的頂部。此屬性不適用於滾動視圖。

<?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="fill_parent" 
android:orientation="vertical"> 

<TextView 
    android:id="@+id/show_content" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/black" 
    android:textSize="25sp" 
    android:gravity="center" 
    android:padding="10dp" /> 

<LinearLayout 
    android:id="@+id/hold_check_boxes" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_below="@+id/show_content" /> 

<Button android:id="@+id/save"    
    android:layout_width="150dp" 
    android:layout_height="wrap_content"   
    android:text="@string/save" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

有什麼建議嗎?

編輯:滾動型與

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainScrollView"   
android:layout_width="fill_parent" 
android:layout_height="wrap_content" >    

    <RelativeLayout    
     android:id="@+id/topLayout" 
     android:layout_width="fill_parent"    
     android:layout_height="wrap_content" 
     android:orientation="vertical">        

      <TextView 
      android:id="@+id/show_content" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="@color/black" 
      android:textSize="25sp" 
      android:gravity="center" 
      android:padding="10dp" 
      android:background="@drawable/bottom_border" /> 

     <LinearLayout 
      android:id="@+id/hold_check_boxes" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_below="@+id/show_content" /> 

     <Button android:id="@+id/save"    
      android:layout_width="150dp" 
      android:layout_height="wrap_content"   
      android:text="@string/save" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" />  

    </RelativeLayout>  
</ScrollView> 
+0

你在哪裏添加滾動視圖?您的LinearLayout必須包含在滾動視圖中。 – Urban

+0

我試過 .... 和 <的LinearLayout> .... 他們都顯示按鈕的allignparentbuttom attribut在屏幕的頂部 – Seb

+0

請使用滾動視圖發佈更新後的代碼。 – Urban

回答

1

你可以這樣做沒有考慮爲父母。你唯一需要做的就是在ScrollView中使用Linearlayout。

<?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="fill_parent" > 

    <TextView 
     android:id="@+id/show_content" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:padding="10dp" 
     android:textColor="@color/black" 
     android:textSize="25sp" /> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/save" 
     android:layout_below="@+id/show_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" > 

     <LinearLayout 
      android:id="@+id/hold_check_boxes" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" /> 
    </ScrollView> 

    <Button 
     android:id="@+id/save" 
     android:layout_width="150dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/save" /> 

</RelativeLayout> 

更新:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <TextView 
      android:id="@+id/show_content" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:padding="10dp" 
      android:textColor="@color/black" 
      android:textSize="25sp" /> 

     <LinearLayout 
      android:id="@+id/hold_check_boxes" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/show_content" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:orientation="vertical" /> 

     <Button 
      android:id="@+id/save" 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/hold_check_boxes" 
      android:layout_centerHorizontal="true" 
      android:text="@string/save" /> 
    </RelativeLayout> 

</ScrollView> 
+0

是的,我已經弄清楚了。複選框可滾動然後按鈕始終在底部。我想要的是複選框下方的按鈕。因此,滾動到複選框底部後,該按鈕在底部可見。我希望這是可以理解的,我試圖做 – Seb

+0

看到我更新的答案。 –

+0

如果需要滾動,這可以工作,但問題是複選框是動態創建的,大部分時間滾動並非必要。在這種情況下,按鈕應該位於屏幕的底部,而不是直接位於複選框 – Seb