Android自定義組合控制項的實現

2021-10-07 20:09:09 字數 4055 閱讀 4787

<?xml version="1.0" encoding="utf-8"?>

xmlns:android

=""android:layout_width

="fill_parent"

android:layout_height

="60dip"

>

android:id

="@+id/tv_title"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:layout_alignparentleft

="true"

android:layout_marginleft

="5dip"

android:layout_margintop

="5dip"

android:textcolor

="#000000"

android:textsize

="20dip"

/>

android:id

="@+id/tv_desc"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:layout_below

="@+id/tv_title"

android:layout_marginleft

="5dip"

android:layout_marginbottom

="5dip"

android:textcolor

="#99000000"

android:textsize

="18dip"

/>

android:clickable

="false"

android:focusable

="false"

android:id

="@+id/cb_status"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:layout_alignparentright

="true"

android:layout_centervertical

="true"

android:layout_marginright

="20dip"

/>

android:layout_width

="fill_parent"

android:layout_height

="0.2dip"

android:layout_alignparentbottom

="true"

android:layout_alignparentleft

="true"

android:layout_marginleft

="5dip"

android:layout_marginright

="5dip"

android:background

="#000000"

/>

relativelayout

>

<?xml version="1.0" encoding="utf-8"?>

>

name

="textview"

>

name

="title"

format

="string"

/>

name

="desc_on"

format

="string"

/>

name

="desc_off"

format

="string"

/>

declare-styleable

>

resources

>

iniview(context context)初始化自定義的布局檔案

根據需求自定義一些api方法

public

class

settingitemview

extends

relativelayout

public

settingitemview

(context context, attributeset attrs,

int defstyle)

public

settingitemview

(context context, attributeset attrs)

public

settingitemview

(context context)

public

boolean

ischecked()

public

void

setchecked

(boolean checked)

else

cb_status.

setchecked

(checked);}

public

void

setdesc

(string text)

}

別忘記宣告自定義命名空間

xmlns:victor=「

<?xml version="1.0" encoding="utf-8"?>

xmlns:android

=""xmlns:victor

=""android:layout_width

="match_parent"

android:layout_height

="match_parent"

android:orientation

="vertical"

>

android:id

="@+id/siv_update"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

victor:desc_off

="自動更新關閉"

victor:desc_on

="自動更新開啟"

victor:title

="設定自動更新"

>

com.victor.mobilesafe.ui.settingitemview

>

linearlayout

>

自定義乙個view 一般來說,繼承相對布局,或者線性布局 viewgroup;

實現父類的構造方法。一般來說,需要在構造方法裡初始化自定義的布局檔案;

根據一些需要或者需求,定義一些api方法;

根據需要,自定義控制項的屬性,可以參照textview屬性;

自定義命名空間,例如:

xmlns:victor=「

《包名》」

xmlns:victor=「

自定義我們的屬性,在res/values/attrs.xml

使用我們自定義的屬性

例如:itheima:title=「設定自動更新」

itheima:desc_on=「設定自動更新已經開啟」

itheima:desc_off=「設定自動更新已經關閉」

在我們自定義控制項的帶有兩個引數的構造方法裡attributeset attrs 取出我們的屬性值,關聯自定義布局檔案對應的控制項;

Android自定義控制項之自定義組合控制項(三)

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...

Android自定義控制項之自定義組合控制項

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...

Android 自定義組合控制項,屬性

1.建立自定義控制項繼承relativelayoutpublic class settingview extends relativelayout1.在values attrs.xml 布局中使用 a.命名空間 xmlns itheima 包名 b.控制項中使用 包名.ui.settingview ...