这里需要传入view对象,这个可以是布局中的任意一个view对象 。
2.2.3 Alerts
Anko Alerts主要包括以下几个功能:
Android 默认dialogAndroid Appcompat 中AlertDialog自定义Dialog
1.Android 默认dialog通过以下代码就可以构建一个可以交互的Android 默认dialog 。
alert(\\”Hi, I\\’m Roy\\”, \\”Have you tried turning it off and on again?\\”) {yesButton { toast(\\”Oh…\\”) }noButton {}}.show()
代码比较简单,就不做解释 。
2.Android Appcompat 中AlertDialog另外Anko还提供了Appcompat的AlertDialog实现方式,如下:
alert(Appcompat, \\”Some text message\\”).show()
3.自定义Dialog什么,不能自定义dialog吗?怎么会,自定义dialog也是非常的简单
alert {customView {editText()}}.show()
2.2.4 Selectors (包含列表的Dialog)
我们平时创建列表Dialog是这样的:
val listItems = arrayOf(\\”Russia\\”, \\”USA\\”, \\”Japan\\”, \\”Australia\\”)//传数组val listDialog: AlertDialog.Builder = AlertDialog.Builder(this)listDialog.setItems(listItems) { p0, p1 ->toast(p1)}val dialog: AlertDialog = listDialog.create()dialog.show()val window: Window = dialog.windowval params: WindowManager.LayoutParams = window.attributesparams.y = 45 * ScreenUtils.getScreenDensity().toInt()params.gravity = Gravity.TOP or Gravity.RIGHTparams.width = ScreenUtils.getScreenWidth() / 2params.height = ViewGroup.LayoutParams.WRAP_CONTENTwindow.attributes = params
但是我们用Anko是这样的:
val countries = listOf(\\”Russia\\”, \\”USA\\”, \\”Japan\\”, \\”Australia\\”)//传listselector(\\”Where are you from?\\”, countries, { dialogInterface, i ->toast(\\”So you\\’re living in ${countries[i]}, right?\\”)})
看起来只是简化了dialog的创建过程 。
2.2.5 Progress dialogs
不显示进度的 Loading Dialg
pressDialog(\\”Please wait a minute.\\”, \\”Downloading…\\”)indeterminateProgressDialog(\\”Fetching the data…\\”)2.3 Logging
打印log辅助工具 。
Android SDK 提供 android.util.Log 类来提供一些 logging 方法,,这些方法都很实用,但是我们每次必须传递一个 Tag 参数,同时这个 Tag 信息必须是 String 类型的,这就略显麻烦 。不过现在我们可以通过 AnkoLogger 类摆脱这些恼人的问题:
class SomeActivity : Activity(), AnkoLogger {fun someMethod() {info(\\”Info message\\”)debug(42) // .toString() method will be called automatically}}
默认的 Tag 名是当前的类名( 本例中的是SomeActivity),但是通过重写 AnkoLogger 的 loggerTag 属性我们是可以来更改的,而且每个方法有两个版本:plain and lazy (inlined)
1.Lazy:
info(\\”String \\” + \\”concatenation\\”)info { \\”String \\” + \\”concatenation\\” }
2.plain:
class SomeActivity : Activity() {private val log = AnkoLogger(this.javaClass)private val logWithASpecificTag = AnkoLogger(\\”my_tag\\”)
private fun someMethod() {log.warning(\\”Big brother is watching you!\\”)}}
上面两种方法分别是不同Tag的实现方式 。
AnkoLogger中loggerTag 属性具体对照如下:2.4 Resources and dimensions
你可以在你的项目中使用Anko Resources and dimensions来简化你的代码,例如Color、Dimen等,颜色透明度直接色值.opaque就可以,尺寸的话直接使用dip(dipValue)、sp(spValue)就可以 。在这里面还有一个就是applyRecursively()用来控制子View的操作,如:
verticalLayout {textView{text = \\”EditText01\\”backgroundColor = 0xff000.opaquetextSize = 14f}textView {text = \\”EditText02\\”backgroundColor = 0x99.gray.opaquetextSize = 23f}}.applyRecursively {//如果是ViewGroup的话可以使用applyRecursively来为每个Child View进行设置view -> when(view){is TextView -> view.textColor = Color.RED}}3.Anko Layouts
- 橘子涂什么颜色 我把这橙子敷在了这上面
- 皮下长了个硬疙瘩不痛不痒和皮肤颜色一样 包茎皮下有小疙瘩不痛不痒
- 痰的颜色是略带黄色 喉咙疼吐黄痰怎么回事
- 为什么三文鱼有的肉很红有的很白 三文鱼肉什么颜色算好
- 现膝盖皮肤颜色都是深棕色 半月板撕裂三度必须手术吗
- 榴莲的果肉坏了是什么颜色的 怎样辨别榴莲肉坏没坏
- 荆条蜜什么味道 荆条蜜的颜色和味道
- 脸上皮肤颜色不一样是怎么回事 常见脸部皮肤问题
- 梨和白萝卜熬的水是什么颜色 白萝卜梨子煮水的功效
- 倒模是什么颜色 阴臀倒模买什么尺寸最好
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
