translationZ 在我的带有地图片段的 ConstraintLayout 中不起作用

Posted

技术标签:

【中文标题】translationZ 在我的带有地图片段的 ConstraintLayout 中不起作用【英文标题】:translationZ not working in my ConstraintLayout with map fragment 【发布时间】:2020-09-04 17:11:19 【问题描述】:

我在地图片段上有一个 ImageView,它们都放置在 ConstraintLayout 中。我为 ImageView 设置了 android:translationZ="2dp" 然后 android:elevation="2dp" 但仍然看不到图像。

map_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_>

    <fragment
        android:id="@+id/mapView"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:context=".MapsActivity" />

    <ImageView
        android:id="@+id/testImage"
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="@+id/mapView"
        app:layout_constraintStart_toStartOf="parent"
        app:srcCompat="@drawable/test"
        android:translationZ="2dp"/>

</androidx.constraintlayout.widget.ConstraintLayout>

奇怪的是,我将 OnClickListener 设置为 image 并且我可以单击它。看起来 ImageView 在那里,在地图片段的顶部,但我看不到它。

如何将地图片段发送到后面或将视图带到前面?

【问题讨论】:

将片段 layout_height 更改为固定大小,例如:80 dp 覆盖整个屏幕,因此您看不到 imageView 您是否尝试设置android:elevation="2dp" 而不是android:translationZ @mohosyny; imageView 必须在 mapview 上。并且地图视图必须覆盖所有屏幕。 @ReazMurshed;是的,我尝试了海拔。不工作:( @ReazMurshed;我尝试添加另一个具有相同可绘制对象的图像视图,你是对的。我看不到:( 【参考方案1】:

app:srcCompat 更改为android:src 效果很好。最终的 xml 看起来像:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_>

    <fragment
        android:id="@+id/mapView"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:context=".MapsActivity" />

    <ImageView
        android:id="@+id/testImage"
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="@+id/mapView"
        app:layout_constraintStart_toStartOf="parent"
        android:src="@drawable/test"
        android:translationZ="2dp"/>

</androidx.constraintlayout.widget.ConstraintLayout>

感谢@mohosyny 和@ReazMurshed。

【讨论】:

以上是关于translationZ 在我的带有地图片段的 ConstraintLayout 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

带有片段的重复 ID

带有标记的Android谷歌地图片段

Android从地图片段底部拖动回收器视图

丑陋的片段过渡到带有覆盖的surfaceview

使用 TabLayout 在 ViewPager 中的 Google 地图片段中膨胀异常

在 Android 应用程序中加载谷歌地图太慢了