Articles of anko

Kotlin: Как сделать меню панели инструментов с помощью Anko DSL?

Как сделать меню панели инструментов Android с Anko DSL прямо в классе пользовательского интерфейса? Не хотите писать слушателей в классе Activity. Что касается моего ответа, приведенного ниже, есть ли способ избежать XML-файла для описания элементов меню?

Как я могу отобразить свое представление anko без вызова overriding onCreate?

Это моя активность в LoginActivity . LoginActivityUI – это мой AnkoComponent для просмотра. @EActivity//not using R.layout.activity_login open class LoginActivity : BaseActivity() { //Anko view injection with dagger2 @Inject lateinit var ui: LoginActivityUI //Forced to do this and its not neat override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ui.setContentView(this) } @AfterViews fun afterView() { //Never called ui.setContentView(this) […]

Использование метода получения Anko Ошибка несоответствия AnkoContext <ViewGroup> Найдено AnkoContext <Context>

Я использую Anko в базовом приложении для Android, где я реализую recyclerView. В onCreateViewHolder() я получаю ошибку времени компиляции, onCreateViewHolder() тип Mismatch. Все остальное в коде ниже. class ListAdapter(val arrayList: ArrayList<String> = ArrayList<String>()) : RecyclerView.Adapter<Holder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder? { //type Mismatch error required AnkoContext<ViewGroup> Found AnkoContext<Context> return Holder(ItemUI().createView(AnkoContext.create(parent!!.context))) } override […]

Как сделать универсальный AppBar с Anko DSL?

Я пытаюсь создать панель инструментов, которую я могу вставить в другие компоненты Anko. Вот пример того, что я собираюсь: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) MainUI().setContentView(this) val toolbar: Toolbar = find(R.id.toolbar) setSupportActionBar(toolbar) } } class MainUI : AnkoComponent<MainActivity> { override fun createView(ui: AnkoContext<MainActivity>) = with(ui) { coordinatorLayout { fitsSystemWindows = […]

Andoird anko DSL – добавление текстовых просмотров и создание их «новой строки», когда нет больше ширины экрана?

моя задача проста, у меня есть массив имен, каждое имя добавляется как отдельный текст. Однако некоторые из моих массивов длинны, а текстовые изображения слишком велики, чтобы поместиться на экране. Результат очень урод, и я не знаю, как его решить. Я попытался использовать все разные (насколько мне известно) типы макетов, и ни один из них, похоже, […]

Каков правильный способ использования расширений Anko Coroutines?

Поэтому я переношу пример приложения из RxJava в Kotlin / Anko Corontines, и мне интересно, если я делаю лучший (первый) подход к нему: fun getPopulationList() { val ref = asReference() async(UI) { try { ref().setCurrentState(ViewState.State.LOADING) val background = bg { repository.populationResponse().execute().body() } ref().let { it.response = background.await() it.mvpView?.onGetData(it.response) it.setCurrentState(ViewState.State.FINISH) } } catch (e: Exception) { […]

Динамическое использование AnkoComponent <*>. StartActivity ()

Есть ли способ вызвать startActivity () динамически? Цель состояла бы в следующем: fun <T: Activity> buttonGoTo(): android.widget.Button { return button() { // do stuff onClick {startActivity<T>()} } } Заранее спасибо.

Kotlin coroutines в Android: зачем использовать bg () из Anko вместо async ()?

Я начал использовать Kotlin coroutines на Android сегодня, и я заметил, что у Anko есть свой набор вспомогательных методов для них. Я понимаю, почему asReference() существует, но я не могу понять, почему работает bg() , учитывая, что в core coroutines lib уже есть async() . Код bg() довольно прост и использует async() внутри: @PublishedApi internal […]

Ошибка ввода типа. Ожидаемое несоответствие типа: требуется Строка найденная пара <String, String> в Котлине и Анко

Я создал базу данных с использованием библиотеки kotlin и kotlin . Я следую этой статье https://antonioleiva.com/databases-anko-kotlin/ Я пытаюсь вставить данные внутри блока базы данных, используя ниже, но я получаю сообщение об ошибке Ошибка ввода типа. Ожидаемое несоответствие типа: требуется Строка найденная пара fun insertPerson() { database.use { insert(PersonTable.Name, PersonTable.PersonName to "XX", PersonTable.Domain to "Technology", PersonTable.MobileNumber […]

Anko игнорирует layout_margin, определенный в стиле

Я создал собственный стиль: <style name="Static"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_marginEnd">5dp</item> </style> Затем я расширил анко со статической функцией: inline fun ViewManager.static(theme: Int = R.style.Static, init: TextView.() -> Unit) = ankoView(::TextView, theme, init) Когда я использую это в своем макете: static { text = resources.getString(R.string.name) } Значение marginEnd игнорируется. Если я добавлю маржу вручную […]