앙코 첫걸음

6679 단어 AndroidKotlinanko

Anko


Anko는 Kotlin의 코드로 Android UI를 조립할 수 있는 JetBrains 공식 라이브러리입니다.
일반적인 코드로 UI를 조립하는 방법과 달리 DSL을 사용하면 간단하게 기록할 수 있다.
사용자가 UI를 미리 볼 수 있도록 Preferences>Plugins>Browse repositories에 Anko DSL Preview 플러그인을 설치하십시오.
Anko의 최신 버전은 0.9이지만, 보도 집필은 현재 0.8.3으로 하지 않으면 Preview를 잘 나타낼 수 없다.
또한 XML의 Preview와 마찬가지로 표시할 API 수준을 지정할 수 있지만 먼저 22 이하로 설정합니다.
(추적)
참고로 Anko DSL Preview 플러그인을 설치하면 Code>Convert to Koan DSL이 추가됩니다.
이것은 XML을 Anko DSL로 변환하는 도구입니다.

배포 방법


app.gradle에 다음 설정을 추가하십시오
app.gradle
dependencies {
    compile 'org.jetbrains.anko:anko-sdk15:0.8.3'
    compile 'org.jetbrains.anko:anko-support-v4:0.8.3'
    compile 'org.jetbrains.anko:anko-appcompat-v7:0.8.3'

    // 0.9だとPreviewが動かない
    compile 'org.jetbrains.anko:anko-sdk15:0.9'
    compile 'org.jetbrains.anko:anko-support-v4:0.9'
    compile 'org.jetbrains.anko:anko-appcompat-v7:0.9'
}
최신 버전을 공식적으로 확인하는 동시에 가져오십시오.
https://github.com/Kotlin/anko

기본용법


액티비티로 해볼게요.


액티비티 내부에서 사용할 때 다음과 같이 onCreate에서 DSL을 직접 쓸 수 있습니다.
MainActivity.kt
class SampleActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        verticalLayout {
            textView {
                text = "Hello, Anko!"
            }
        }
    }
}

Framgent로 해볼게요.


Fragment의 onCreateView 내부에서 사용할 때 Activity와 달리 UI{}입니다.뷰로 둘러싸야 합니다.
MainFragment.kt
class MainFragment : Fragment() {
    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?) : View? {
        return UI {
            verticalLayout {
                textView {
                    text = "Hello, Anko!"
                }
            }
        }.view
    }
}

반을 나누어 사용하다


클래스를 분리하여 사용하려면 먼저 AnkoComponent 인터페이스를 구현한 클래스를 만들어야 합니다.
MainActivityUi.kt
class MainActivityUi() : AnkoComponent<MainActivity> {
    override fun createView(ui: AnkoContext<MainActivity>) = with(ui) {

        verticalLayout {
            textView {
                text = "Hello, Anko!"
            }
        }

    }
}
그런 다음 ainActivityUi 클래스의 setContentView를 호출합니다.
MainActivity.kt
class MainActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        MainActivityUi().setContentView(this)
    }
}
이렇게 분류된 상태에서도 미리보기가 이동합니다.

참고 자료


공식 GitHub:https://github.com/Kotlin/anko

좋은 웹페이지 즐겨찾기