【问题标题】:FloatingActionButton on top of action bar操作栏顶部的 FloatingActionButton
【发布时间】:2021-03-25 11:56:41
【问题描述】:

我正在尝试在 actionBar 上放置一个 floatingActionButton,这可能吗?我该怎么做?

您将在下面找到我当前的 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_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listframe">

        <ImageView
            android:id="@+id/arrowTopRight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top|right"
            android:layout_marginTop="70dp"
            android:layout_marginRight="70dp"
            android:src="@mipmap/cursor" />

        <TextView
            android:id="@+id/textNoData"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center_vertical"
            android:layout_marginBottom="240dp"
            android:layout_marginRight="80dp"
            android:layout_marginLeft="80dp"
            android:layout_gravity="center_horizontal"
            android:text="@string/empty_list_of_codes" />

        <ImageView
            android:id="@+id/keyBlurry"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal"
            android:src="@mipmap/keyblurry"
            android:scaleType="center" />

        <ImageView
            android:id="@+id/LogoDown"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:layout_marginBottom="40dp"
            android:layout_marginRight="40dp"
            android:src="@mipmap/logoblack" />

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/buttonAddLocation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top|end"
            android:layout_margin="16dp"
            app:maxImageSize="56dp"
            android:elevation="8dp"
            app:srcCompat="@mipmap/addlocation" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:id="@+id/list"/>

</FrameLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

在邮件类中,我以编程方式添加我的 actionBar:

actionBar = ((MainActivity)currentActivity).getSupportActionBar();
actionBar.setTitle(R.string.main_title);

我尝试使用我的 floatingButton 的位置,但它最终落在了 actionBar 的后面。任何帮助将不胜感激!

【问题讨论】:

    标签: java android android-actionbar floating-action-button


    【解决方案1】:
    1. 停止使用默认的 ActionBar,改用工具栏。
    2. 在 layout.xml 中的工具栏上放置一个 FloatingActionButton。

    以下仅为一般示例。一些细节应该会有所不同,并取决于您的实际情况。

    修改themes.xml来自:

    <!-- Base application theme. -->
    <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    

    到:

    <!-- Base application theme. -->
    <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    

    布局/activity_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_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <androidx.appcompat.widget.Toolbar
            android:background="@color/purple_200"
            android:id="@+id/toolbar"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:layout_marginEnd="150dp"
            android:src="@android:drawable/ic_input_add"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    主活动:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多