Android Material Design FloatingActionButton
In the Previous tutorial Android Working with Material Design, I talked about Material design, how to add ActionBar and create custom themes and using them in our application.
In this tutorial, we will learn about FloatingActionButton which was introduced in Material Design. The FloatingActionButton as the name suggests floats on UI in a circular shape.
Note: Update your Android Studio to the latest version it by defaults set theme containing ActionBar. if you are not aware of adding ActionBar then do visit Android Working with Material Design.
FloatingActionButton has following attributes: –
- app:fabSize: – it has two sizes one is default size and the second one it has mini size.
- app:backgroundTint: – it is used to set a background color for floatingactionbutton
- use can use layout_gravity to set floatingactionbutton’s position.
So, Let’s Start.
1.Open Android Studio -> New Project->Android Application Project-> Name of Application-> Follow all instructions and complete by clicking on Finish.
2.First add following dependencies to your build.gradle to work with Material Design
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' }
3. Now we will create layout for MainActivity.java class containing FloatingActionButton
activity_main.xml
<RelativeLayout 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_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <android.support.design.widget.FloatingActionButton android:id="@+id/myfloatingbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_dialog_email" /> </RelativeLayout>
4. Now Create a MainActivity.java class that will be our main screen containing FloatActionButton and handle FloatingActionButton click
MainActivity.java
package com.coderzpassion.materialfloatingsample; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity { FloatingActionButton floatingActionButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); floatingActionButton=(FloatingActionButton)findViewById(R.id.myfloatingbutton); //handle FloatingActionButton Click floatingActionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(),"FloatingActionButton is Clicked",Toast.LENGTH_SHORT).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.coderzpassion.materialfloatingsample" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Output