android 如何在LinearLayout中定位WebView下的元素?

uidvcgyl  于 2023-05-15  发布在  Android
关注(0)|答案(1)|浏览(118)

我尝试创建一个片段,上面和下面都有一个Button。显示了上面的按钮,但未显示下面的按钮。这就像WebView试图占据屏幕上的所有剩余空间,而不管LinearLayout中可能有什么其他元素。

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

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test1"/>

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test2"/>
</LinearLayout>

如何显示WebView下面的内容,并阻止WebView占用视图中的所有剩余空间?
当试图增加重量时,事情变得更加奇怪。将按钮的权重设置为1,将WebView的权重设置为0,这意味着按钮根本不会显示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="2">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test1"
        android:layout_weight="1"/>

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test2"
        android:layout_weight="1"/>
</LinearLayout>

最后,当试图给予WebView一个0.1的权重时,按钮都显示出来了,但它们在屏幕上的高度只有2dp左右:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="2.1">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test1"
        android:layout_weight="1"/>

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test2"
        android:layout_weight="1"/>
</LinearLayout>
v8wbuo2f

v8wbuo2f1#

设置android:layout_height="0dp"android:layout_weight="1",使webview占据按钮之间的所有可用空间:

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

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test1"/>

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/blue"
        android:text="test2"/>
</LinearLayout>

相关问题