http://www.flutterbyexample.com/#/posts/inherited_widgets

 

Flutter by Example

 

www.flutterbyexample.com

위 글에 대한 내용입니다.

 

플러터 에서 sdk 의 모든 부분이 개발자에게 노출되어 있고 개발자는 상속된 위젯의 장점을 이용할수 있다.

 

또한 커스텀한 상속 위젯을 "built-in central state storage" 처럼 사용할수 있습니다. "Redux Store" 나 "Vue 의 Vuex Store" 처럼 말이죠.

아래는 예시 소스 입니다.

1
2
3
4
5
6
@override
Widget build(context) {
  return new Text('Hello, World',
    style: new TextStyle(color: Theme.of(context).primaryColor),
  );
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

"Lifting State Up" 아키텍처

statefulwidget 에서 상태관리 툴

'Flutter' 카테고리의 다른 글

BuildContext() 란  (0) 2020.02.12

http://www.flutterbyexample.com/#/posts/build_context

 

Flutter by Example

 

www.flutterbyexample.com

위의 글을 번역(의역) 했습니다.

 

"BuildContext 이란?" 간단한 설명 

 - widget 트리 에서 Widget 의 위치.

- 부모 widget 의 build 메소드가 리턴한 context 정보)


build 메소드 안의 context 와 클레스 안에 있는 context 는 동일한거가 아닙니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class _MyHomePageState extends State<MyHomePage> {
  _MyHomePageState() {
    print(context.hashCode);
    // prints 2011
  }
 
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
      ),
      body: new Container(),
      floatingActionButton:
          new FloatingActionButton(onPressed: () => print(context.hashCode)),
          // prints 63
    );
  }
}
 

- 잘못된 context ,build 를 사용하기 쉬우니 조심해야함. ( of(context) 를 사용하면 알수있음 )

- of(context) 메소드를 통해서  그 widget 정보를 가져올수 있음.

 

The 'of()' Method

플러터에서는 모든게 widget 이다, 위젯 트리구조 에서 다른 위젯을 참조하기 위해선 약간의 기능이 필요로 하다.

특히 상속한 위젯들을 참조하기 위해서는 "of()" 메소드 형태를 사용한다.

1
2
3
4
5
6
@override
Widget build(context) {
  return new Text('Hello, World',
    style: new TextStyle(color: Theme.of(context).primaryColor),
  );
}

부모 Widget 의 'Theme' Widget primaryColor 값을 가져오는 소스(build 메소드의 context 가 부모와의 관계를 알수 있음)

 

'Flutter' 카테고리의 다른 글

Inherited Widgets 상속된 위젯  (0) 2020.02.12

App Transport Security 란?

 

App Transport Security

>iOS 9.0또는 OS X 10.11 이상 유효하며, 응용프로그램과 웹 서비스간의 안전한 연결을 위해 사용할 수 있음

>ATS가 활성화되면 HTTP를 통해 통신을 할 수 없음

>Apple에서 권장하는 요구 사항을 충족하지 않는 연결은 강제로 연결 실패 처리.

>App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. 

 

flutter 개발시 현상 

 안드로이드 시뮬레이터 : 웹뷰(WebView)에서 URL 호출시 ERR_CLEARTEXT_NOT_PERMITTED 발생

 IOS 시뮬레이터 : 페이지 열리지 않음.

 

수정방법

1. android/app/src/main/AndroidManifest.xml

 

android:icon="@mipmap/ic_launcher"

android:usesCleartextTraffic="true"><application
        android:name="io.flutter.app.FlutterApplication"
        android:label="flutter_webviews"
        android:icon="@mipmap/ic_launcher">
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"

 

2. ios/Runner/Info.plist

 

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

+ Recent posts