일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 서비스 vs 쓰레드
- rxjava disposable
- android retrofit login
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛 테스트 예시
- 안드로이드 라이선스
- 2022 플러터 설치
- 서비스 쓰레드 차이
- jvm이란
- jvm 작동 원리
- ar vr 차이
- 스택 큐 차이
- 멤버변수
- ANR이란
- 클래스
- 안드로이드 레트로핏 crud
- 안드로이드 라이선스 종류
- 스택 자바 코드
- 플러터 설치 2022
- android ar 개발
- rxjava cold observable
- 큐 자바 코드
- rxjava hot observable
- 안드로이드 유닛 테스트
- 안드로이드 os 구조
- 자바 다형성
- 안드로이드 유닛테스트란
- 객체
- Rxjava Observable
- 안드로이드 레트로핏 사용법
- Today
- Total
나만을 위한 블로그
[Android] FloatingActionButton(플로팅 버튼) 본문
참고) 디벨로퍼 사이트 : https://developer.android.com/guide/topics/ui/floating-action-button
플로팅 버튼은 단말의 오른쪽 하단에서 자주 보이는 + 모양 혹은 다른 모양의 버튼인데, 이 버튼을 누르면 그 위로 같은 모양의 둥근 버튼들이 올라와서 하고 싶은 걸 선택할 수 있도록 해주는 버튼이다.
이름부터 플로팅 액션 '버튼'인데 버튼과 리스너 등 이벤트가 비슷하지 않을까? 라고 생각했다.
공부해보니 구현법은 일반 버튼을 구현하는 방법과 비슷하다고 한다. 하지만 기본적으로 이미지뷰를 상속받는 위젯이라 버튼의 배경으로 쓸 이미지를 내가 지정해줄 수 있고, 서브 버튼들이 나열되도록 할 수 있다. 버튼이기 때문에 당연히 눌릴 때 발생하는 클릭 이벤트도 추가할 수 있다고 한다.
시험 삼아 프로젝트를 하나 새로 파고 그곳에서 플로팅 액션 버튼(이하 fab)을 찾았다.
그 전에 앱 수준 gradle에 아래와 같은 implements 문구를 넣어야 한다.
이 문구를 넣으면 스낵바도 같이 만들 수 있다.
implementation 'com.google.android.material:material:1.0.0'
그리고 MainActivity.xml에 들어가 design 탭의 palette에서 "fl"을 치니 바로 나왔다. 이름 옆의 다운로드 버튼을 눌러 gradle 파일에 implements하고 클릭 리스너를 달아봤다.
fb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "스낵바 등장", Snackbar.LENGTH_SHORT).setAction("Action", null).show();
}
});
이렇게 해도 문제없이 화면에 출력됐다. 이것 말고도 리스너 클래스를 별도로 만들고, 그 클래스에 View.OnClickListener를 implements한 뒤에 이 리스너를 써도 정상 작동했다.
그냥 버튼인데 이미지 모양을 좀 더 다양하게 적용할 수 있는 버튼이라고 생각된다.
'Android' 카테고리의 다른 글
[Android] Android.Manifest.xmlParseError at [row, col]:[n,n] 에러 (0) | 2019.11.15 |
---|---|
[Android] 페이스북 로그인 API 구현 시 해시 키 구하기 (0) | 2019.11.15 |
[Android] 리사이클러뷰 클릭 이벤트 2 (0) | 2019.11.07 |
[Android] 리사이클러뷰 클릭 이벤트 (0) | 2019.11.07 |
[Android] 파이어베이스를 활용한 앱 채팅 기능 구현 (0) | 2019.11.07 |