Vandaag zullen we leren over de Android Zwevende Actieknop. We zullen de FloatingActionButton
bespreken, dat is een nieuwe component opgenomen in de Material Design Richtlijnen en SnackBar, die een Material Design vervanging is van een Toast.
Android Zwevende Actieknop
De Android Zwevende Actieknop wordt gebruikt om de nadruk te leggen op de belangrijkste functie op het scherm. Het is een coole en stijlvolle manier om de aandacht van de gebruiker te trekken.
Overzicht van de Android Zwevende Actieknop
Om Material Design-widgets in ons project te gebruiken, moeten we de volgende afhankelijkheid compileren in ons build.gradle
-bestand zoals hieronder getoond.
compile 'com.android.support:design:23.1.1'
De FloatingActionButton-widget is gedefinieerd in de xml-indeling als volgt:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_email"
android:layout_gravity="bottom|end"
app:elevation="6dp"
app:pressedTranslationZ="12dp"/>
Enkele waarnemingen gedaan vanuit de bovenstaande gedefinieerde xml-indeling zijn:
- FloatingActionButton breidt de ImageView-klasse uit. Dit blijkt uit het
android:src
-attribuut dat is gedefinieerd. - In de bovenstaande xml-layout wordt het attribuut elevatie gebruikt om een schaduw over de knop te werpen en pressedTranslationZ zorgt ervoor dat de schaduw groter wordt wanneer erop wordt gedrukt.
A FloatingActionButton
is placed within a CoordinatorLayout. A CoordinatorLayout helps facilitate interactions between views contained within it, which will be useful later to describe how to animate the button depending on scroll changes. SnackBar is a more enhanced widget when compared to a Toast. A SnackBar is invoked as follows:
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
We hebben SnackBar uitvoerig besproken in een andere tutorial. Belangrijke opmerking: Als je deze Android Tutorials goed hebt gevolgd, heb je vast gemerkt dat met de nieuwe buildtools-update naar 23.1.1 de projectstructuur van een nieuw leeg project is gewijzigd en de bovengenoemde widgets standaard aanwezig zijn in een nieuw Android Studio-project. Dus in plaats van de bovengenoemde widgets te implementeren, laten we snel de nieuwe projectstructuur bekijken.
Voorbeeldprojectstructuur van Android Floating Action Button
Zoals je kunt zien, is er een nieuw xml-layoutbestand met de naam
content_main.xml
toegevoegd. Het is hetzelfde als het eerdere activity_main.xml
.
Voorbeeld van Android Floating Action Button
De nieuwe activity_main.xml
wordt hieronder gegeven:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.journaldev.floatingactionbutton.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
A toolbar is added by default as a replacement of an ActionBar. It’s added inside an AppBarLayout which is a direct child of CoordinatorLayout The AppBarLayout is used to achieve various scrolling behaviours such as collapse, flex space, and quick return. The MainActivity.java
is defined as given below:
package com.journaldev.floatingactionbutton;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate het menu; dit voegt items toe aan de actiebalk als deze aanwezig is.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Behandel hier klikgebeurtenissen van de actiebalk-items. De actiebalk zal
// automatisch klikken op de Home/Up-knop afhandelen, zolang
// je een ouderactiviteit specificeert in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
A new attribute is added to the application tag inside the AndroidManifest.xml named android:supportsRtl="true"
. This enables right to left layouts in the application. Running this default application produces an output like below: As you can see, on clicking the floating action button, a SnackBar is displayed. This brings an end to this tutorial. You can create a new project in Android Studio and run it to see these features. Note: Make sure that you’re using the latest build tools. Reference: Android Reference Doc
Source:
https://www.digitalocean.com/community/tutorials/android-floating-action-button-example-tutorial