2011-08-25 56 views
0

我有一個內部自定義視圖設置和該部分似乎是完美的工作 - 我想知道的是...是否有可能限制自定義視圖的高度類似於沿着Swing的線條,在邊界佈局的中心有一個滾動窗格,在邊界佈局的南邊有另一個面板。安卓自定義滾動視圖與底部的廣告

我在北方4層文本的意見,在該中心,然後我的自定義滾動視圖,我想這個應用程式的底部

我試圖在XML做以下3個保持不變: (僞XML - 刪除最爲了可讀性)

1.

<LinearLayout ...> // vertical 
    <TextView ...></TextView> 
    <LinearLayout ...> // horizontal 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
    </LinearLayout> 
    <ScrollView...> 
     <LinearLayout ...> 
      <view class="blah.blah.blah.CustomView" ...> 
      </view> 
     </LinearLayout> 
    </ScrollView> 
    <RelativeLayout ...> 
     <com.google.ads.AdView ... /> 
    </RelativeLayout> 
</LinearLayout> 

2.

<LinearLayout ...> // vertical 
    <TextView ...></TextView> 
    <LinearLayout ...> // horizontal 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
    </LinearLayout> 
    <ScrollView...> 
     <LinearLayout ...> 
      <view class="blah.blah.blah.CustomView" ...> 
      </view> 
      <RelativeLayout ...> 
       <com.google.ads.AdView ... /> 
      </RelativeLayout> 
     </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

3.

<LinearLayout ...> // vertical 
    <TextView ...></TextView> 
    <LinearLayout ...> // horizontal 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
     <TextView ...></TextView> 
    </LinearLayout> 
    <ScrollView...> 
     <LinearLayout ...> 
      <view class="blah.blah.blah.CustomView" ...> 
      </view> 
     </LinearLayout> 
    </ScrollView> 
</LinearLayout> 
<LinearLayout ...> 
    <com.google.ads.AdView .../> 
</LinearLayout> 

任何幫助,以什麼我可以做,使這項工作將不勝感激

回答

0

如果我理解正確的話,嘗試#1使用重量= 1和0dip高度上你ScrollView

android:layout_height="0dip" 
android:layout_weight="1" 
android:fillViewport="true" 

你的滾動型會自動增長,填補了剩餘屏幕,推動廣告(RelativeLayout)的底部(任意屏幕大小/方向)。

雖然它不是你的確切佈局,但這裏是我的一個佈局應該類似的完整示例。

Portrait

Landscape

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

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:fillViewport="true"> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="10dip" 
      android:paddingRight="10dip" 
      android:paddingTop="10dip"> 

      <TextView 
       android:id="@+id/edit_name_label" 
       android:paddingTop="10dip" 
       android:textSize="14sp" 
       android:text="Name" 
       android:singleLine="true" 
       android:textColor="#ffffffff" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 

      <EditText 
       android:id="@+id/edit_name_edittext" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:saveEnabled="true" 
       android:capitalize="sentences" /> 

      <TextView 
       android:id="@+id/edit_type_label" 
       android:textSize="14sp" 
       android:text="Type" 
       android:singleLine="true" 
       android:textColor="#ffffffff" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="5dip" /> 

      <EditText 
       android:id="@+id/edit_type_edittext" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:lines="1" 
       android:saveEnabled="true" 
       android:capitalize="sentences" /> 

      <TextView 
       android:id="@+id/edit_description_label" 
       android:textSize="14sp" 
       android:text="Description" 
       android:singleLine="true" 
       android:textColor="#ffffffff" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="5dip" /> 

      <EditText 
       android:id="@+id/edit_description_edittext" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:gravity="top" 
       android:scrollbars="vertical" 
       android:saveEnabled="true" 
       android:capitalize="sentences" /> 

     </LinearLayout> 
    </ScrollView> 
    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="3dip" 
     android:paddingRight="3dip" 
     android:paddingLeft="3dip" 
     android:background="@drawable/bottom_bar_background"> 

     <Button 
      android:id="@+id/edit_cancelbutton" 
      android:text="Cancel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="20dip" 
      android:paddingRight="20dip" 
      android:layout_alignParentLeft="true" /> 

     <Button 
      android:id="@+id/edit_savebutton" 
      android:text="Save" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="30dip" 
      android:paddingRight="30dip" 
      android:layout_alignParentRight="true" /> 
    </RelativeLayout> 
</LinearLayout> 
+0

不幸的是,當我嘗試這樣做滾動視圖完全消失 - 我也試過以下鏈接http://stackoverflow.com/questions/5380383/how-to -get-ad-to-show-at-bottom-of-screen-without-overlap並且看到相同的事情發生,不太確定我在做什麼錯誤 –

+0

對不起,延遲。很難說沒有看到整個佈局,所以我包含了一個真正的佈局,適合我。保存/取消欄固定在底部(不管屏幕大小/方向),因爲ScrollView總是擴展到它可用的全尺寸(即使內容很短,感謝android:fillViewport =「true」)。 –