앙코 첫걸음
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.gradledependencies {
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.ktclass SampleActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
verticalLayout {
textView {
text = "Hello, Anko!"
}
}
}
}
Framgent로 해볼게요.
Fragment의 onCreateView 내부에서 사용할 때 Activity와 달리 UI{}입니다.뷰로 둘러싸야 합니다.
MainFragment.ktclass MainFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?) : View? {
return UI {
verticalLayout {
textView {
text = "Hello, Anko!"
}
}
}.view
}
}
반을 나누어 사용하다
클래스를 분리하여 사용하려면 먼저 AnkoComponent 인터페이스를 구현한 클래스를 만들어야 합니다.
MainActivityUi.ktclass MainActivityUi() : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = with(ui) {
verticalLayout {
textView {
text = "Hello, Anko!"
}
}
}
}
그런 다음 ainActivityUi 클래스의 setContentView를 호출합니다.
MainActivity.ktclass MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MainActivityUi().setContentView(this)
}
}
이렇게 분류된 상태에서도 미리보기가 이동합니다.
참고 자료
공식 GitHub:https://github.com/Kotlin/anko
Reference
이 문제에 관하여(앙코 첫걸음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuroarizuka/items/74418e1eee03a9f06a4b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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'
}
액티비티로 해볼게요.
액티비티 내부에서 사용할 때 다음과 같이 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
Reference
이 문제에 관하여(앙코 첫걸음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuroarizuka/items/74418e1eee03a9f06a4b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)