728x90
👋 SplitButton
1️⃣ 개요
스플릿 버튼은 코틀린으로 구현된 기본 액션뿐만 아니라 메뉴 세트 중 선택하여 다른 동작을 할 수 있도록 이중 기능을 하는 버튼입니다.
2️⃣ 설정
build.gradle 파일에 종속성 추가가 필요합니다.
1. 프로젝트 수준
allprojects {
repositories {
//...omitted for brevity
maven { url 'https://jitpack.io' }
}
}
2. 앱 수준
dependencies {
implementation "com.github.kojofosu:SplitButton:$latest_release"
}
3️⃣사용법
레이아웃을 담당하는 xml 파일에 스플릿 버튼을 추가합니다.
<com.mcdev.splitbuttonlibrary.SplitButton
android:id="@+id/split_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
스플릿 버튼을 초기화 및 커스터마이즈 합니다.
var splitBtn: SplitButton = findViewById(R.id.split_btn)
splitBtn.setTextColor(R.color.black)
splitBtn.setIconColor(android.R.color.white)
splitBtn.setBgColor(android.R.color.holo_orange_light)
splitBtn.setMenuItems(R.menu.split_menu)
splitBtn.itemColor = android.R.color.holo_blue_dark // set menu items color
버튼 리스너
splitBtn.setOnButtonClickListener(object : OnButtonClickListener {
override fun onClick(itemId: Int, itemTitle: String?) {
Log.d("TAG", "onClick: id :$itemId")
Log.d("TAG", "onClick: title :$itemTitle")
if (itemId == R.id.send) {
Toast.makeText(this@MainActivity, "Send", Toast.LENGTH_SHORT).show()
Log.d("TAG", "onClick: send ")
}else if (itemId == R.id.sfl) {
Toast.makeText(this@MainActivity, "Save for later", Toast.LENGTH_SHORT).show()
Log.d("TAG", "onClick: bookmark ")
} else if (itemId == R.id.draft) {
Toast.makeText(this@MainActivity, "Draft", Toast.LENGTH_SHORT).show()
}
}
})
메뉴 목록을 생성해 항목을 추가합니다.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/send"
android:icon="@drawable/ic_paper_plane"
android:title="Send"/>
<item
android:id="@+id/sfl"
android:icon="@drawable/ic_calendar"
android:title="Schedule"/>
<item
android:id="@+id/draft"
android:icon="@drawable/ic_bookmark"
android:title="Draft"/>
</menu>
배경색 등을 변경하기 위한 스타일을 지정하려는 경우 참고하시면 됩니다.
<style name="PopMen" parent="Widget.AppCompat.PopupMenu.Overflow">
<!-- change menu text color-->
<item name="android:textColor">@android:color/black</item>
<!--change popup menu background color-->
<item name="popupMenuBackground">@android:color/holo_orange_light</item>
<item name="android:radius">30dp</item>
<item name="cardCornerRadius">30dp</item>
<item name="cornerRadius">30dp</item>
</style>
https://github.com/kojofosu/SplitButton
'Android | Kotlin 개발 관련 뉴스 & 기술' 카테고리의 다른 글
👋프로그래밍 표기법 : 1️⃣Camel Case, 2️⃣Pascal Case, 3️⃣Kebab Case, 4️⃣Snake Case (0) | 2022.03.25 |
---|---|
👋naming 시 활용할 수 있는 단어와 반의어 (0) | 2022.03.25 |
안드로이드 뉴스 : Jetpack Compose (0) | 2021.11.13 |
코틀린 뉴스 : Don’t argue with default arguments (0) | 2021.11.05 |