KC Blog

快速學會在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)

這邊都懂的話可以直接跳到step5.

  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又能彈性的只輸入我們想改的位置就好

  Step5.最後輕鬆使用