0

我在某些移动设备上的 Android 布局有些问题。它是一个带有 web 视图的布局,下面有一个带有 3 个按钮的栏。布局运行良好,但在某些设备上,如 HTC One、三星 Galaxy S2(更大的屏幕),webview 的布局和它下方的栏在屏幕中间被压在一起。看布局:

  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout android:gravity="center" android:orientation="vertical" android:id="@id/linweb" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
<WebView android:id="@id/mainWebView" android:layout_width="fill_parent" android:layout_height="410.0dip" />
<LinearLayout android:orientation="horizontal" android:id="@id/bottommenu" android:background="@drawable/bar" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/mainWebView">
    <Button android:textStyle="bold" android:textColor="@color/text" android:id="@id/one" android:background="@layout/custom_button" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/buttonmenu" android:text="Citroen" android:layout_weight="2.0" />
    <Button android:textStyle="bold" android:textColor="@color/text" android:id="@id/two" android:background="@layout/custom_button" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Mitshibitsu" android:layout_weight="2.0" />
    <Button android:textStyle="bold" android:textColor="@color/text" android:id="@id/three" android:background="@layout/custom_button" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Suzuki" android:layout_weight="2.0" />
</LinearLayout>
</LinearLayout>
4

2 回答 2

3

这是因为您使用常量值指定了 WebView 的高度。您需要告诉它用按钮填充行上方的空间。

试试这个:

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

    <WebView
        android:id="@+id/mainWebView"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1" />

    <LinearLayout
        android:id="@+id/bottommenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="0.0dip"
        android:paddingLeft="0.0dip"
        android:paddingRight="0.0dip"
        android:paddingTop="0.0dip" >
    

        <Button
            android:id="@+id/one"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.0"
            android:text="Citroen"
            android:textStyle="bold" />
    

        <Button
            android:id="@+id/two"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.0"
            android:text="Mitshibitsu"
            android:textStyle="bold" />
    

        <Button
            android:id="@+id/three"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.0"
            android:text="Suzuki"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>
于 2012-04-30T11:04:42.563 回答
1

您正在硬编码 WebView 的高度。您还混合了来自 RelativeLayouts 的一些参数。

您应该使用 layout_weight 来填充 LinearLayout 中的任何空白空间。

以下是您可能想要实现的目标的示例。

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

 <WebView android:id="@id/mainWebView" 
 android:layout_width="fill_parent"    
 android:layout_height="0dp" 
 android:layout_weight="1" />

 <LinearLayout android:orientation="horizontal" 
 android:id="@id/bottommenu" 
 android:background="@drawable/bar" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" >

<Button android:textStyle="bold" 
android:textColor="@color/text" 
android:id="@id/one"     
android:background="@layout/custom_button" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:src="@drawable/buttonmenu" 
android:text="Citroen" 
android:layout_weight="2" />

<Button android:textStyle="bold" 
android:textColor="@color/text" 
android:id="@id/two" 
android:background="@layout/custom_button" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:text="Mitshibitsu" 
android:layout_weight="2" />

<Button android:textStyle="bold" 
android:textColor="@color/text" 
android:id="@id/three" 
android:background="@layout/custom_button"
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:text="Suzuki" 
android:layout_weight="2" />

</LinearLayout>

</LinearLayout>
于 2012-04-30T11:08:52.213 回答