플러터 ThemeData

MaterialApp(
	theme: ThemeData(),
	home: MyApp()
)
  • 스타일만 모아서 ThemeData 위젯으로 만든 뒤 theme 파라미터로 추가할 수 있음
  • 스타일 중복이 발생 할 시 물리적으로 가까운 스타일을 먼저 적용하려고 함
  • ThemeData 길어질 경우 lib 폴더 안에서 다른 dart 파일로 만들어놓고 import 해오면 깔끔하게 관리 가능
    import '경로' as 작명 으로 경로파일의 변수, 함수, 클래스 전부 사용 가능

ThemeData에서 버튼 디자인 변경하려면

ThemeData(
	textButtonTheme: TextButtonThemeData(
		style: TextButton.styleFrom(
			primary: Color.black,
			backgroundColor: Colors.orange
		)
	)
)
  • styleFrom은 ButtonStyle() 사번을 하나 생성해주는 함수. 이런식으로 바꿔야 버튼의 색상이 바뀜

하위 ThemeData() 생성하고 싶은 경우

Container(
	child: Theme(
		data: ThemeData(스타일),
		child: Container(
			적용된 스타일 내용들
		)
	)
)

ThemeData() 안의 특정스타일 불러오기

Text('안녕', style: Theme.of(context).textTheme.bodyText1)
  • Theme.of()는 족보를 입력가능. 가장 가까운 ThemeData()를 찾아서 가져와줌.

좋은 웹페이지 즐겨찾기