自定義ViewGroup(一)

2021-07-05 22:59:09 字數 640 閱讀 4944

1、概述

viewgroup是乙個view的容器,他可以給出childview的測量模式和測量其寬高,他的作用非常重要。

childview測量模式:

exactly:表示設定了精確的值,一般當childview設定其寬、高為精確值、match_parent時,viewgroup會將其設定為exactly;

at_most:表示子布局被限制在乙個最大值內,一般當childview設定其寬、高為wrap_content時,viewgroup會將其設定為at_most;

unspecified:表示子布局想要多大就多大,一般出現在aadapterview的item的heightmode中、scrollview的childview的heightmode中;此種模式比較少見。

2、自定義viewgroup步驟

我們大概了解了viewgroup的作用,顯然這是不夠的,我們還需要建立他,因為viewgroup同樣繼承自view,所以大致上和view的建立步驟是一樣的,但是有幾個點需要注意一下。

1:編寫構造方法

2:重寫onmeasure函式

3:重寫onlayout函式

4:重寫ondraw函式

5:viewgroup的layoutparams(非必須,確定自己支援那些屬性,如margin)

ViewGroup 自定義控制項

自定義viewgroup這篇文章是針對自定義layoutmanager來寫的,提取出相關自定義的相同點。所有的自定義都可以歸結為在父控制項裡面放置子控制項。一 繼承類 viewgroup 繼承之後需要實現構造,由於一般是在xml中引入所有需要實現以下構造 viewgroup context cont...

自定義ViewGroup 回顧

自定viewgroup要比自定義view要複雜一點,因為自定義viewgroup不僅測量自身還要測量子元素和及重寫onlayout 來一次排列子view。下面這篇文章是關於自定義viewgroup的一些基本知識,這些主要內容來自 android開發藝術探索 在文章最後又這本書的網上版本。viewgr...

自定義ViewGroup及其屬性

閒來無事自定義個viewgroup的控制項來練練手。比如說現在有這麼個需求,一左一右分別有個textview,然後外面乙個控制項直接包裹這兩個 1 現在給這個自定義控制項 本文中名叫rclinearlayout 自定義乙個屬性,然後去通過這個屬性去確定這兩個textview是否需要處於同一水平線上。...