在模拟器上找不到浮动操作按钮

Posted

技术标签:

【中文标题】在模拟器上找不到浮动操作按钮【英文标题】:Floating action button cannot be found on emulator 【发布时间】:2019-11-20 05:27:52 【问题描述】:

我创建了一个带有ImageViewVideoView 和浮动操作按钮的布局。我的想法是继续在VideoViewImageView 上方显示浮动操作按钮。

下面是我的 XML 代码,看起来浮动操作按钮隐藏在 ImageViewVideoView 后面。任何帮助将不胜感激。

<FrameLayout 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_
    android:layout_
    android:background="#000000"
    android:contentDescription="@string/app_name"
    android:id="@+id/frame"
    tools:context="com.serv24.eframe.FullscreenActivity" >

    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_
        android:layout_
        android:layout_gravity="bottom|left"
        android:visibility="visible"
        tools:visibility="visible" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_
        android:layout_
        android:layout_gravity="bottom|end"
        android:src="@android:drawable/ic_dialog_email"
        android:visibility="visible"
        app:backgroundTint="@android:color/holo_red_dark"
        app:rippleColor="?android:attr/colorActivatedHighlight" />

    <VideoView
        android:id="@+id/videoView1"
        android:layout_
        android:layout_
        android:layout_gravity="center_vertical|center_horizontal"
        android:visibility="invisible" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_
        android:layout_
        android:layout_gravity="center_vertical|center_horizontal"
        android:contentDescription="@string/app_name"
        android:visibility="visible" />
</FrameLayout>

【问题讨论】:

【参考方案1】:

我建议使用RelativeLayout 而不是FrameLayout,以便在您的情况下更容易实施。您只需将元素放在其他一些元素下方,即可在布局中的上方元素之上。我正在使用RelativeLayout 共享您的布局版本。希望对您有所帮助!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/frame"
    android:layout_
    android:layout_
    android:background="#000000">

    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true" />

    <VideoView
        android:id="@+id/videoView1"
        android:layout_
        android:layout_
        android:visibility="invisible" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_
        android:layout_
        android:contentDescription="@string/app_name" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_
        android:layout_
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_margin="16dp"
        android:src="@android:drawable/ic_dialog_email"
        android:visibility="visible"
        app:backgroundTint="@android:color/holo_red_dark"
        app:rippleColor="?android:attr/colorActivatedHighlight" />

</RelativeLayout>

【讨论】:

【参考方案2】:

在您的 FrameLayout 中添加的项目是相互叠加的,因此最新添加的项目在之前的项目之上。

在您的情况下,您首先添加了 ProgressBar,然后添加了显示在 ProgressBar 上方的 FloatingActionButton,然后添加了显示在 FloatingActionButton 上方的 VideoView(如果 VideoView 是全屏的,它将隐藏您之前放置的所有内容)最后是显示在其他所有内容之上的 ImageView。

您可以将其想象为将一张纸叠放在一张桌子上。

所以要显示你的工厂,你应该把它放在你的 xml 中的最后一个位置(在 ImageView 之后)。

【讨论】:

以上是关于在模拟器上找不到浮动操作按钮的主要内容,如果未能解决你的问题,请参考以下文章

视图创建时浮动操作按钮锚点更改

在此模拟对象上找不到模拟方法 shouldRecieve() [关闭]

在 Mac OS 上找不到 /dev/kvm

在运行 5.1.1 的真实 Android 设备上找不到 Webview

Eclipse - 不幸的是应用程序已停止 - ClassNotFoundException:在路径上找不到类

如何旋转纵向/横向 Android 模拟器? [复制]