自定義ViewGroup(1) 橫向布局

2021-07-25 12:16:19 字數 1485 閱讀 9508

最近學習自定義viewgroup,我的目標是做乙個可以很想滾動的listview,使用adapter填充資料,並且使用adapter.notifydatasetchanged()更新資料。

不過一口吃不成乙個胖子(我吃成這樣可是好幾年的積累下來的~~~~),我們一步一步來,這篇筆記首先寫乙個橫向的布局。

**:

package com.example.libingyuan.horizontallistview.scrollviewgroup;

import android.content.context;

import android.util.attributeset;

import android.view.view;

import android.view.viewgroup;

/** * 自定義viewgroup

* 很簡單的橫向布局,把所有的子view都橫著排列起來,不可滾動

*/public

class

scrollviewgroup

extends

viewgroup

public

scrollviewgroup(context context, attributeset attrs)

public

scrollviewgroup(context context, attributeset attrs, int defstyleattr)

@override

protected

void

onmeasure(int widthmeasurespec, int heightmeasurespec)

/*** 測量寬度

*/private

intmeasurewidth(int widthmeasurespec, int heightmeasurespec)

//返回寬度

return modewidth == measurespec.exactly ? sizewidth : width;

}/**

* 測量高度

*/private

intmeasureheight(int widthmeasurespec, int heightmeasurespec)

//求平均高度

height = height / childcount;

//返回高度

return modeheight == measurespec.exactly ? sizeheight : height;

}@override

protected

void

onlayout(boolean changed, int l, int t, int r, int b)

}@override

public layoutparams generatelayoutparams(attributeset attrs)

}

自定義ViewGroup(一)

1 概述 viewgroup是乙個view的容器,他可以給出childview的測量模式和測量其寬高,他的作用非常重要。childview測量模式 exactly 表示設定了精確的值,一般當childview設定其寬 高為精確值 match parent時,viewgroup會將其設定為exactl...

ViewGroup 自定義控制項

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

自定義ViewGroup 回顧

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