快速學會在Android App中調整元素間距 - 使用Kotlin extension程式碼設定間距
6 min read
ProgrammingLang#Android#Extension#Kotlin
前言
今天要跟大家分享一個超簡單的小技巧,
讓你在設計 Android App 時可以用程式碼
調整元素的間距。
這個方法用起來不僅方便,而且還可以讓你的設計更加美觀。
就算你是剛入門工程師,也可以輕鬆掌握!
跟著我一起來學吧!
基本的方法
在Android中調整元素間距有多種方法,本文將介紹使用Kotlin extension程式碼設定間距的方法。
在這之前我們先了解一下
在xml裡面設定view間距的話
最直接的僅需一行而已
android:layout_marginLeft="30dp"
有些情況下
當需求方要求你動態設定 Android View 元素間的間距時
通常可以用下面的的方法:
這個方法需要實例化一個 LayoutParams
並且需要設定上下左右間距後才能 set 到你的 View 上
但如果你需要在多個地方都使用這個設定間距的方法
那就會讓程式碼變得冗長且難以維護。
為了解決這個問題,
你可以使用 Kotlin Extension 去實作設定間距的方法,
這樣就能夠讓你的程式碼更簡潔且易於維護。
使用kotlin extension來完成
step0. 這邊先展示一下完整的擴充function
這段程式碼已經可以直接使用了
複製到你的專案內
直接拿到你的view呼叫就行了!
vb.btConfirmZero.margin(top = 0F)
vb.btConfirmOne.margin(bottom = 30F,right = 2F)
vb.btConfirmTwo.margin(bottom = 10F,left = 3F)
Step1. 要如何實作呢?
首先先建立一個function如下
之後我們就可以這樣呼叫
上面程式碼解說
這邊其實就是為了符合不同的 ViewGroup.LayoutParams讓未來如果有更多繼承 <b>ViewGroup.LayoutParams</b> 的實體類想進行操作
可以更有彈性
Step2. 寫一個dp to px的method
- 這邊很簡單 主要是為了配合設定間距時使用的是pixel 所以寫了個轉換方法
Step3. 透過擴充好的layoutParams去對layout的parameter做修改
上面程式碼解說
這邊透過剛寫好的 View.layoutParams 去操作我們要設定的view以前在java要設定都一定要一次輸入上下左右四個parmater
因此這邊我們用
<b>left: Float? = null, top: Float? = null, right: Float? = null, bottom: Float? = null</b>
來預設四個位置的間距都是null
再使用kotlin null safe的特性去檢查,如
<b>left?.run { leftMargin = convertDpToPixel(this) }</b>
確定有值才會去設定margin間距值
我們既不用擔心會null exception又能彈性的只輸入我們想改的位置就好