操作栏顶部的 FloatingActionButton
FloatingActionButton on top of action bar
我正在尝试将一个 floatingActionButton 放在 actionBar 的顶部,这可能吗?我该怎么做?
下面你会发现我现在的 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>
并且在邮件 class 中,我以编程方式添加了我的 actionBar:
actionBar = ((MainActivity)currentActivity).getSupportActionBar();
actionBar.setTitle(R.string.main_title);
我尝试调整我的 floatingButton 的位置,但它最终落在了 actionBar 的后面。任何帮助将不胜感激!
- 停止使用默认的 ActionBar,改用 Toolbar。
- 在 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">
layout/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);
}
我正在尝试将一个 floatingActionButton 放在 actionBar 的顶部,这可能吗?我该怎么做?
下面你会发现我现在的 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>
并且在邮件 class 中,我以编程方式添加了我的 actionBar:
actionBar = ((MainActivity)currentActivity).getSupportActionBar();
actionBar.setTitle(R.string.main_title);
我尝试调整我的 floatingButton 的位置,但它最终落在了 actionBar 的后面。任何帮助将不胜感激!
- 停止使用默认的 ActionBar,改用 Toolbar。
- 在 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">
layout/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);
}