2010-02-26 54 views
0

我有一個webview和一個包含4個按鈕的表。我已將webview的高度設置爲400px,以便按鈕以縱向模式顯示在屏幕的底部。我的問題是,當更改爲橫向模式時,按鈕不可見。所以當我改變方向時,我需要在運行時改變webview的高度。有誰知道如何做到這一點?我可以使用'onConfigurationChanged'函數捕獲方向更改。如何更改運行時的webview的高度?


感謝CommonsWare,我給了XML如下。應用程序在啓動時崩潰。

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<RelativeLayout android:layout_alignParentTop="true"> 

<WebView 
    android:id="@+id/appView" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" /> 

</RelativeLayout> 
<RelativeLayout 
    android:layout_alignParentBottom="true"> 

<TableLayout 
    android:id="@+id/TableLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical"> 

<TableRow 
    android:id="@+id/TableRow01" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center"> 

<ImageButton 
    android:id="@+id/more" 
    android:padding="1dip" 
    android:src="@drawable/more1" 
    android:layout_marginRight="15dip"> 
</ImageButton> 
<ImageButton 
    android:id="@+id/albums" 
    android:padding="1dip" 
    android:src="@drawable/albums1" 
    android:layout_marginRight="15dip"> 
</ImageButton> 
<ImageButton 
    android:id="@+id/videos" 
    android:padding="1dip" 
    android:src="@drawable/videos" 
    android:layout_marginRight="15dip"> 
</ImageButton> 
<ImageButton 
    android:id="@+id/artists" 
    android:padding="1dip" 
    android:src="@drawable/artists1" 
    android:layout_marginRight="15dip"> 
</ImageButton> 
</TableRow> 
</TableLayout> 
</RelativeLayout> 
</LinearLayout> 

回答

4

設計您的佈局以避免400px的硬線值。這不僅不適用於您正在測試的任何仿真器/設備的橫向模式,它不會像您期望的那樣在較小或較大的屏幕上工作。

請使用RelativeLayout,與像android:layout_alignParentBottom的按鈕和android:layout_alignParentTopandroid:layout_aboveWebView屬性。然後,您的佈局將動態適應可用空間。