[Android] FloatingActionButton ์ •๋ฆฌ

Minjun Kimยท2023๋…„ 8์›” 26์ผ
0

Android

๋ชฉ๋ก ๋ณด๊ธฐ
24/47
post-thumbnail

๐Ÿ“ SeSAC์˜ 'JetPack๊ณผ Kotlin์„ ํ™œ์šฉํ•œ Android App ๊ฐœ๋ฐœ' ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.


ํ™”๋ฉด์— ๋–  ์žˆ๋Š” ๋“ฏํ•œ ๋ฒ„ํŠผ์„ ์ œ๊ณตํ•˜๋Š” ๋ทฐ

ํ”ํžˆ ์•ฝ์–ด๋กœ FAB ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๋Œ€๋ถ€๋ถ„ ์šฐ์ธก ํ•˜๋‹จ์— ์œ„์น˜ํ•˜์ง€๋งŒ ์ถœ๋ ฅ ์œ„์น˜๋Š” ์ž„์˜๋กœ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์ „์—๋Š” FloatingActionButton ์„ ์‚ฌ์šฉํ–ˆ๊ณ , ํ˜„์žฌ๋Š” ExtendedFloatingActionButton ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โ“ ExtendedFloatingActionButton ๋ž€?

FloatingActionButton ์—์„œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๊ฒƒ ๋ฟ์ด๋‹ค.

FloatingActionButton ์˜ ๊ฒฝ์šฐ๋Š” ๊ทธ์ € ์ด๋ฏธ์ง€๋ฅผ ๋™๊ทธ๋ž€ ๋ชจ์–‘์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์ •๋„์˜€๋Š”๋ฐ,

ExtendedFloatingActionButton ์€ ์ด๋ฏธ์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฌธ์ž์—ด๊นŒ์ง€๋„ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ“Œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="extended FAB"
        app:icon="@android:drawable/ic_input_add" />

  • icon ์†์„ฑ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ด ์ด๋ฏธ์ง€๋ฅผ ๋‘ฅ๊ทธ๋ ‡๊ฒŒ ๊ฐ์‹ธ์„œ ํ™”๋ฉด์— ๋–  ์žˆ๋Š” ๋“ฏ ํ•˜๊ฒŒ ์ถœ๋ ฅ

์ฝ”๋“œ์—์„œ ํ™•์žฅ๋˜์–ด ๋ฌธ์ž์—ด๊นŒ์ง€ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œ๋˜์–ด ์•„์ด์ฝ˜๋งŒ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๋“ฑ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

binding.fab.setOnClickListener { 
	when (binding.fab.isExpanded){
    	true -> binding.shrink()
        false -> binding.fab.extend()
	}
}

๐Ÿงฉ ์‹ค์Šต ์˜ˆ์ œ

  • 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">

    <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:text="extended FAB"
        app:icon="@android:drawable/ic_input_add"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

  • MainActivity.kt
package com.kotdev99.android.c95

class MainActivity : AppCompatActivity() {
	private lateinit var binding: ActivityMainBinding
	override fun onCreate(savedInstanceState: Bundle?) {
		super.onCreate(savedInstanceState)

		binding = ActivityMainBinding.inflate(layoutInflater)
		setContentView(binding.root)

		binding.fab.setOnClickListener {
			when (binding.fab.isExtended) {
				true -> binding.fab.shrink()
				false -> binding.fab.extend()
			}
		}
	}
}

๐Ÿ“ฒ ๊ฒฐ๊ณผ

profile
์‘์•  ๋‚˜ ์•„๊ธฐ ๋‰ด๋น„

0๊ฐœ์˜ ๋Œ“๊ธ€