اضافه کردن دکمه شناور به اکتیویتی

اضافه کردن دکمه شناور(Flaoting button) به اکتیویتی

یا دکمه شناور یکی از جالبترین و کاربردی‌ترین امکاناتیه که در متریال دیزاین اومده و اضافه شده.

برای اضافه کردن دکمه شناور به اکتیویتی ابتدا باید کتابخانه مربوطه را به پروژه اضاف کنیم. اینکار را میتوان هم در Project Structure  انجام داد مانند تصویر زیر:

 

که کتابخانه  com.android.support:design:23.1.1  را از با زدن دکمه + از لیست انتخاب کرده و اضافه میکنیم و پنجره را می‌بندیم.

و هم میتوان در قسمت راست اندروید استودیو و Gradle Scripts   ؛ Build Gradle  را باز کرده و در بخش dependencies مانند نمونه زیر اضافه کرد.

 

build.gradle

dependencies {

compile fileTree(dir: ‘libs’, include: [‘*.jar’])

testCompile ‘junit:junit:4.12’

compile ‘com.android.support:appcompat-v7:23.1.1’

compile ‘com.android.support:design:23.1.1’

}

بعد از اضافه نمون کتابخانه که احتمالا زمان زیادی از شما بگیرد کد زیر را در اکتیویتی که میخواهم دکمه در آن باشد قرار می‌دهیم.

<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” />

اگه فرض کنیم اکتیویتی ما شامل دو قسمت تولبار و بدنه باشه ما دکمه شماور را در بیرون از کد مربوط به تولبار قرار می‌دهیم مانند کد زیر:

<?xml version=”1.0″ encoding=”utf-8″?>

<android.support.design.widget.CoordinatorLayout 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”

android:fitsSystemWindows=”true”

tools:context=”info.androidhive.fab.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:elevation=”8DP”

</android.support.design.widget.CoordinatorLayout>

 

میشه برای زیبایی دکمه یه سری خصوصیات بهش اضافه کرد مثل سایه(elevation) و مارجین(layout_margin).و همینطور تنظیمات اون طوری نوشته شده که گوشه پایین سمت راست صفحه قرار بگیره.شما می‌تونید هر جایی که خواستید اونو قرار بدی.

تعریف  Id  که ضروریه. بخاطر اینکه برای این دکمه می‌خواهیم با فشردن اون توسط کاربر یه عملیایت انجام بشه.

 

 

خوب حالا برای نوشتن کدی که موقع کلیک شدن به یه اکتیویتی دیگه‌ای منتقل بشه .

به کد جاوا این اکتیویتی می‌ریم .

کد زیر فقط کد مربوط به کلیک دکمه شناوره و کد کامل اکتیویی هم در ادامه براتون گذاشتم.

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// Click action

Intent intent = new Intent(MainActivity.this, NewMessageActivity.class);

startActivity(intent);

}

});

MainActivity.java

package info.androidhive.fab;

import android.content.Intent;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

public class MainActivity extends AppCompatActivity {

private FloatingActionButton fab;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent = new Intent(MainActivity.this, NewMessageActivity.class);

startActivity(intent);

}

});

}

}

 

0 پاسخ

دیدگاه خود را ثبت کنید

آیا می خواهید به بحث بپیوندید؟
در صورت تمایل از راهنمایی رایگان ما استفاده کنید!!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *