LinearLayout 是否已被 ConstrainedLayout 取代?

Has LinearLayout been replace with ConstrainedLayout?

[编辑:如果 LinearLayout 仍然可以,那么我在 'dependencies' 而不是 implementation 'androidx.constraintlayout:constraintlayout:2.0.4' 中需要什么,因为我找不到等效的 LinearLayout?]

我最近更新到 BumbleBee Android Studio。我的旧代码使用了 LinearLayout。

我只想要一个 WebView,其中 WebView 被迫覆盖屏幕的整个宽度和高度,底部有一个广告。

它说我现在需要 ConstrainedLayout,但我不确定该怎么做?或者我还能用LinearLayout,但是为什么WebView下划线是红色的。我的旧代码是这样的:

<?xml version="1.0" encoding="utf-8"?>
<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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#00FFFF" />

    <!-- Sizes BANNER, SMART_BANNER, LARGE_BANNER -->
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="#000000"
        android:paddingTop="5dp"
        app:adSize="LARGE_BANNER"
        app:adUnitId="ca-app-pub-XXXXXXXXXXXXXXXX"/>
</LinearLayout>

不,LinearLayout 与 RelativeLayout 不同,并未弃用。所以,它仍然有它的位置。

这个问题有点宽泛,因为关于您的 View 层次结构应该有多扁平的观点。然而,在复杂的层次结构中,ConstraintLayout 是最好的选择。

编辑:嗯,w/e -- 如果您使用的是 LinearLayout,这意味着没有重叠,则与此接近:

<?xml version="1.0" encoding="utf-8"?>
<your.support.package.here.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:background="#00FFFF"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@id/adView"
        app:layout_constraintTop_toTopOf="parent" />

    <!-- Sizes BANNER, SMART_BANNER, LARGE_BANNER -->
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:paddingTop="5dp"
        app:adSize="LARGE_BANNER"
        app:adUnitId="ca-app-pub-XXXXXXXXXXXXXXXX"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/webView"
        app:layout_constraintBottom_toBottomOf="parent"/>
</your.support.package.here.ConstraintLayout>

我随意输入了那个,所以将其用作指导而不是最终解决方案呵呵;P。我会建议 reading up on the documentation,并尝试一些视图,它会为您组合在一起,在这种情况下相对简单。