반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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 31
Archives
Today
Total
관리 메뉴

welcome to my blog

[Flutter] DateTime / Clipboard / Snackbar / TextField Inputformatter 사용 본문

Flutter

[Flutter] DateTime / Clipboard / Snackbar / TextField Inputformatter 사용

_annie_ 2021. 11. 9. 20:00
728x90

현재 시간을 알고싶을 때 DateTime을 사용한다.

하지만 DateTime은 디바이스 로컬 시간을 가져온다는 점 유의하자.

var now = DateTime.now();
String today = '${now.year}. ${now.month}. ${now.day}';	//2021. 11. 5

now.year -> 년 

now.month -> 월

now.day -> 일

 

UTC시간 : 협정 세계시

utc시간을 얻으려면 ntp라는 라이브러리를 사용하는듯 하다 (추후 사용하게된다면 정리)

 

ListTile의 항목을 꾹 눌렀을 때(long press) 해당 내용을 복사하고싶다면 Clipboard 위젯을 사용한다.

+)스낵바를 적용해보았다.

ListTile(
      onLongPress: (){
        Clipboard.setData(ClipboardData(text: widget.itemText));
        final snackBar = SnackBar(content: Text('copy complete!'), action: SnackBarAction( label: '닫기', onPressed: () {},),);
        ScaffoldMessenger.of(context).showSnackBar(snackBar);
      }
      //..생략
)

widget.itemText -> 멤버변수로 등록해놓음 해당 자리에 복사하고 싶은 내용이 담긴 변수를 지정해주면된다.

SnackBar 위젯을 생성해서 ScaffoldMessenger의 showSnackBar로 보여주면 된다.

Text속성은 스낵바에 보여줄 내용, label은 버튼 이름이고

action 을 넣게되면 오른쪽에 버튼이 생성되는데, 버튼 클릭 시 동작할 내용을 지정해줄 수도 있다.

 

 

TextField에 숫자만 입력하고 싶다면 TextField의 속성인 inputFormatters를 지정해준다.

TextField(
	inputFormatters: [
		FilteringTextInputFormatter.digitsOnly
	]
)

FilteringTextInputFormatter.digitsOnly 속성을 지정해주면 숫자만 입력 가능하다.

FilteringTextInputFormatter.digitsOnly				//숫자만 입력가능
FilteringTextInputFormatter.deny(' ')				//스페이스바 금지
FilteringTextInputFormatter.deny(RegExp('[0-9]'))	//숫자입력금지
FilteringTextInputFormatter.deny(RegExp('[123]'))	//1,2,3입력금지

 

 

keyboardType: TextInputType.number

+키보드 타입을 숫자로 변경하는 방법도 있다.

TextField의 keyboardType을 number로 지정해준다.

728x90
반응형