-
Notifications
You must be signed in to change notification settings - Fork 1
view property
뮤네 edited this page Apr 5, 2019
·
7 revisions
- Ch.prop.event.click()
- Ch.prop.event.longClick()
- Ch.prop.event.clickable()
- Ch.prop.event.longClickable()
- Ch.prop.event.focusChange()
- Ch.prop.event.focusable()
- Ch.prop.event.focusableInTouchMode()
- Ch.prop.event.focus()
- Ch.prop.event.textChanged()
- Ch.prop.event.editorAction()
- Ch.prop.event.down()
- Ch.prop.event.up()
- Ch.prop.event.move()
- Ch.prop.layout.width()
- Ch.prop.layout.height()
- Ch.prop.layout.margin()
- Ch.prop.layout.marginStart()
- Ch.prop.layout.marginEnd()
- Ch.prop.layout.marginTop()
- Ch.prop.layout.marginBottom()
- Ch.prop.text.text()
- Ch.prop.text.fromHtml()
- Ch.prop.text.textSize()
- Ch.prop.text.textScaleX()
- Ch.prop.text.lineSpacing()
- Ch.prop.text.textColor()
- Ch.prop.text.textAlignment()
- Ch.prop.text.hint()
- Ch.prop.text.hintColor()
- Ch.prop.text.maxLines()
- Ch.prop.text.maxLength()
- Ch.prop.text.allCaps()
- Ch.prop.text.fontFamily()
- Ch.prop.text.font()
- Ch.prop.text.inputType()
- Ch.prop.view.tag()
- Ch.prop.view.isEnabled()
- Ch.prop.view.visibility()
- Ch.prop.view.background()
- Ch.prop.view.shadow()
- Ch.prop.view.x()
- Ch.prop.view.y()
- Ch.prop.view.z()
- Ch.prop.view.scaleX()
- Ch.prop.view.scaleY()
- Ch.prop.view.rotation()
- Ch.prop.view.alpha()
- Ch.prop.view.paddingStart()
- Ch.prop.view.paddingEnd()
- Ch.prop.view.paddingTop()
- Ch.prop.view.paddingBottom()
- Ch.prop.view.padding()
Ch.prop.event.click(view: View, v:OnClickListener)
- View에 클릭 리스너 처리
Ch.prop.event.click(view, View.OnClickListener { ... })
Ch.prop.event.longClick(view: View, v:OnLongClickListener)
- View에 롱 클릭 리스너 처리
Ch.prop.event.longClick(view, View.OnLongClickListener{ ... })
Ch.prop.event.clickable(view: View, v:Boolean)
- View에 clickable 처리
Ch.prop.event.clickable(view, true)
Ch.prop.event.longClickable(view: View, v:Boolean)
- View에 LongClickable 처리
Ch.prop.event.longClickable(view, true)
Ch.prop.event.focusChange(view: EditText, v:OnFocusChangeListener)
- View에 OnFocusChangeListener 처리
Ch.prop.event.focusChange(view, View.OnFocusChangeListener{ ... })
Ch.prop.event.focusable(view: View, v:Boolean)
Ch.prop.event.focusable(view: View, v:Number)
Ch.prop.event.focusable(view: View, v:Any)
- View에 focusable 처리
- VERSION : Build.VERSION_CODES.O 이상
Ch.prop.event.focusable(view, true)
Ch.prop.event.focusableInTouchMode(view: View, v:Boolean)
- View에 FocusableInTouchMode 처리
- VERSION : Build.VERSION_CODES.O 이상
Ch.prop.event.focusableInTouchMode(view, true)
Ch.prop.event.focus(view: View, v:Boolean)
- View에 focus 처리
Ch.prop.event.focus(view, true)
Ch.prop.event.textChanged(view: EditText, v:Ch.OnTextChanged)
- View에 TextChangedListener 처리
val textChanged = object: Ch.OnTextChanged(){
override fun onChanged(view: EditText, s:CharSequence, start:Int, before:Int, count:Int){
val v = "$s"
...
}
}
Ch.prop.event.textChanged(view, textChanged)
Ch.prop.event.editorAction(view: EditText, v:TextView.OnEditorActionListener)
- View에 OnEditorActionListener처리
val editorAction = TextView.OnEditorActionListener{
v, id, event -> if(event?.action == KeyEvent.ACTION_DOWN) find<AppCompatEditText>(R.id.rank).requestFocus()
false
}
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="269dp" android:layout_height="wrap_content" android:paddingLeft="12dp"
android:fontFamily="@font/opensansbold" app:fontFamily="@font/opensansbold" android:textStyle="bold" android:includeFontPadding="false"
android:textSize="25sp" android:textColor="@color/black" android:id="@+id/name" android:inputType="text" android:maxLines="1"
android:tag="editorAction:@{StaffAddInfoVM.editorAction}"/>
Ch.prop.event.down(view: View, v:Ch.Touch)
- View에 down 처리
val down = object:Ch.Touch{
override fun onTouch(e:MotionEvent):Boolean{
...
return true
}
}
Ch.prop.event.down(view, down)
Ch.prop.event.up(view: View, v:Ch.Touch)
- View에 up처리
val up = object:Ch.Touch{
override fun onTouch(e:MotionEvent):Boolean{
...
return true
}
}
Ch.prop.event.down(view, up)
Ch.prop.event.move(view: View, v:Ch.Touch)
- View에 move처리
val move = object:Ch.Touch{
override fun onTouch(e:MotionEvent):Boolean{
...
return true
}
}
Ch.prop.event.move(view, move)
Ch.prop.image.image(view: View, v:Int) // ResourceID
Ch.prop.image.image(view: View, v:String) // Drawable name
Ch.prop.image.image(view: View, v:Drawable) // Drawable
Ch.prop.image.image(view: View, v:Bitmap) // Bitmap
- ImageView에 image 설정
Ch.prop.image.image(imageView, ResourceID)
Ch.prop.layout.width(view: View, v:Number)
- view에 width(px) 설정
Ch.prop.layout.width(v, 14.0.DptoPx)
Ch.prop.layout.height(view: View, v:Number)
- view에 height(px) 설정
Ch.prop.layout.height(v, 14.0.DptoPx)
Ch.prop.layout.margin(view: View, v:String)
Ch.prop.layout.margin(view: View, v:List<Int>)
- view에 margin(px) 설정
Ch.prop.layout.margin(v, "14 20 14 30") //left, top, right, bottom
Ch.prop.layout.margin(v, listOf(14, 20, 14 30)) //left, top, right, bottom
Ch.prop.layout.marginStart(view: View, v:Number)
- view에 marginStart(marginLeft)(px) 설정
Ch.prop.layout.marginStart(v, 14)
Ch.prop.layout.marginEnd(view: View, v:Number)
- view에 marginEnd(marginRight)(px) 설정
Ch.prop.layout.marginEnd(v, 14)
Ch.prop.layout.marginTop(view: View, v:Number)
- view에 marginTop(px) 설정
Ch.prop.layout.marginTop(v, 14)
Ch.prop.layout.marginBottom(view: View, v:Number)
- view에 marginBottom(px) 설정
Ch.prop.layout.marginBottom(v, 14)
Ch.prop.text.text(view: TextView, v:String)
- Textview에 text 설정
Ch.prop.text.text(v, "str")
Ch.prop.text.fromHtml(view: TextView, v:String)
- Textview에 html 텍스트 설정
Ch.prop.text.fromHtml(v, "str")
Ch.prop.text.textSize(view: TextView, v: Number)
- Textview에 textSize(px) 설정
Ch.prop.text.textSize(v, 20)
Ch.prop.text.textScaleX(view: TextView, v: Number)
- Textview에 textScaleX(%) 설정
Ch.prop.text.textScaleX(v, 1.2)
Ch.prop.text.lineSpacing(view: TextView, v: Number)
- Textview에 lineSpacing(+) 설정
Ch.prop.text.lineSpacing(v, 2) //+2
Ch.prop.text.textColor(view: TextView, v: colorString)
/* #RRGGBB, #AARRGGBB,
red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
darkgray, grey, lightgrey, darkgrey, aqua, fuchsia,
lime, maroon, navy, olive, purple, silver, and teal. */
- Textview에 textColor(colorString) 설정
Ch.prop.text.textColor(v, 'red')
Ch.prop.text.textColor(v, '#RRGGBB')
Ch.prop.text.textAlignment(view: TextView, v: int)
/* View.TEXT_ALIGNMENT_INHERIT,
View.TEXT_ALIGNMENT_GRAVITY, View.TEXT_ALIGNMENT_CENTER,
View.TEXT_ALIGNMENT_TEXT_START, View.TEXT_ALIGNMENT_TEXT_END,
View.TEXT_ALIGNMENT_VIEW_START, View.TEXT_ALIGNMENT_VIEW_END. */
Ch.prop.text.textAlignment(view: TextView, v: String)
/* "center", "gravity", "inherit", "textend",
"viewstart", "viewend", "viewstart" */
- Textview에 textAlignment 설정
Ch.prop.text.textAlignment(v, View.TEXT_ALIGNMENT_CENTER)
Ch.prop.text.textAlignment(v, "viewstart")
Ch.prop.text.hint(view: TextView, v: String)
- Textview에 hint설정
Ch.prop.text.hint(v, "hint")
Ch.prop.text.hint(view: TextView, v: String)
- Textview에 hintColor설정
Ch.prop.text.hint(v, "#ff0000")
Ch.prop.text.maxLines(view: TextView, v: Number)
- Textview에 maxLines설정
Ch.prop.text.maxLines(v, 2)
Ch.prop.text.maxLength(view: TextView, v: Number)
- Textview에 maxLength(InputFilter) 설정
Ch.prop.text.maxLength(v, 100)
Ch.prop.text.allCaps(view: TextView, v: Boolean)
- Textview에 allCaps(모두 대문자로) 설정
Ch.prop.text.allCaps(v, true)
Ch.prop.text.fontFamily(view: TextView, resID: Number)
Ch.prop.text.font(view: TextView, resID: Number)
Ch.prop.text.fontFamily(view: TextView, v: String)
Ch.prop.text.font(view: TextView, v: String)
- Textview에 fontFamily 설정
- font-resource guide
//XML file saved at res/font/lobster.xml:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/lobster_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/lobster_italic" />
</font-family>
Ch.prop.text.fontFamily(v, "lobster")
Ch.prop.text.inputType(view: TextView, inputType: Int)
/* InputType.TYPE_CLASS_DATETIME, InputType.TYPE_CLASS_NUMBER,
InputType.TYPE_CLASS_PHONE, InputType.TYPE_CLASS_TEXT,
InputType.TYPE_DATETIME_VARIATION_DATE, InputType.TYPE_DATETIME_VARIATION_NORMAL,
InputType.TYPE_DATETIME_VARIATION_TIME,
InputType.TYPE_MASK_CLASS, InputType.TYPE_MASK_FLAGS, InputType.TYPE_MASK_VARIATION,
InputType.TYPE_NULL, InputType.TYPE_NUMBER_FLAG_DECIMAL, InputType.TYPE_NUMBER_FLAG_SIGNED,
InputType.TYPE_NUMBER_VARIATION_NORMAL, InputType.TYPE_NUMBER_VARIATION_PASSWORD,
InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE, InputType.TYPE_TEXT_FLAG_AUTO_CORRECT,
InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS, InputType.TYPE_TEXT_FLAG_CAP_SENTENCES,
InputType.TYPE_TEXT_FLAG_CAP_WORDS, InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE,
InputType.TYPE_TEXT_FLAG_MULTI_LINE, InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS,
InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS, InputType.YPE_TEXT_VARIATION_EMAIL_SUBJECT,
InputType.TYPE_TEXT_VARIATION_FILTER, InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE,
InputType.TYPE_TEXT_VARIATION_NORMAL, InputType.TYPE_TEXT_VARIATION_PASSWORD,
InputType.TYPE_TEXT_VARIATION_PERSON_NAME, InputType.TYPE_TEXT_VARIATION_PHONETIC,
InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS, InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE,
InputType.TYPE_TEXT_VARIATION_URI, InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD,
InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT, InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS,
InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD */
Ch.prop.text.inputType(view: TextView, v: String)
/* "date", "datetime", "none", "number", "numberdecimal", "numberpassword",
"numbersigned", "phone", "text", "textautocomplete", "textautocorrect",
"textcapcharacters", "textcapsentences", "textcapwords", "textemailaddress",
"textemailsubject", "textfilter", "textimemultiline", "textlongmessage",
"textmultiline", "textnosuggestions", "textpassword", "textpersonname",
"textphonetic", "textpostaladdress", "textshortmessage", "texturi",
"textvisiblepassword", "textwebedittext", "textwebemailaddress",
"textwebpassword", "time" */
- Textview에 inputType 설정
- InputType reference
Ch.prop.text.inputType(v, "number")
Ch.prop.text.inputType(v, InputType.TYPE_CLASS_PHONE)
Ch.prop.view.tag(view: View, v:String)
- View에 tag 설정
Ch.prop.view.tag(view, "tag")
Ch.prop.view.isEnabled(view: View, v:Boolean)
- View에 isEnabled설정
Ch.prop.view.isEnabled(view, false)
Ch.prop.view.visibility(view: View, v:Boolean)
// true -> View.VISIBLE, false -> View.GONE
Ch.prop.view.visibility(view: View, v:visibilityInt)
// View.VISIBLE, View.INVISIBLE, View.GONE
- View에 visibility설정
Ch.prop.view.visibility(view, false)
Ch.prop.view.visibility(view, View.GONE)
Ch.prop.view.background(view: View, resID:Int)
Ch.prop.view.background(view: View, v:Drawable)
Ch.prop.view.background(view: View, v:Bitmap)
Ch.prop.view.background(view: View, v:String)
// "#RRGGBB", "#AARRGGBB"
// 리소스 이름(문자열)
- View에 background설정
Ch.prop.view.background(view, "background") //리소스 이름(문자열)
Ch.prop.view.background(view, R.drawable.background)
Ch.prop.view.background(view, "#00ff00")
Ch.prop.view.shadow(view: View, v: Number)
- View에 shadow(elevation) 설정(px)
- VERSION : Build.VERSION_CODES.LOLLIPOP 이상
Ch.prop.view.shadow(view, 14)
Ch.prop.view.x(view: View, v: Number)
- View에 x(translationX) 설정(px)
Ch.prop.view.x(view, 14)
Ch.prop.view.y(view: View, v: Number)
- View에 y(translationY) 설정(px)
Ch.prop.view.y(view, 14)
Ch.prop.view.z(view: View, v: Number)
- View에 z(translationZ) 설정(px)
- VERSION : Build.VERSION_CODES.LOLLIPOP 이상
Ch.prop.view.z(view, 14)
Ch.prop.view.scaleX(view: View, v: Number)
- View에 scaleX 설정(배율)
Ch.prop.view.scaleX(view, 1.2)
Ch.prop.view.scaleY(view: View, v: Number)
- View에 scaleY 설정(배율)
Ch.prop.view.scaleY(view, 1.2)
Ch.prop.view.rotation(view: View, v: Number)
- View에 rotation설정(degrees)
Ch.prop.view.rotation(view, 30.5)
Ch.prop.view.rotation(view, 180)
Ch.prop.view.alpha(view: View, v: Number)
- View에 alpha설정(0~1)
Ch.prop.view.alpha(view, 0.5)
Ch.prop.view.paddingStart(view: View, v: Number)
- View에 paddingStart설정(left, px)
Ch.prop.view.paddingStart(view, 14)
Ch.prop.view.paddingEnd(view: View, v: Number)
- View에 paddingEnd설정(right, px)
Ch.prop.view.paddingEnd(view, 14)
Ch.prop.view.paddingTop(view: View, v: Number)
- View에 paddingTop설정(top, px)
Ch.prop.view.paddingTop(view, 14)
Ch.prop.view.paddingBottom(view: View, v: Number)
- View에 paddingBottom설정(bottom, px)
Ch.prop.view.paddingBottom(view, 14)
Ch.prop.view.padding(view: View, v: String)
- View에 padding설정(px)
Ch.prop.view.padding(v, "14 20 14 30") //left, top, right, bottom