安卓常見類備忘錄之LayoutParams

2021-07-01 21:06:29 字數 2046 閱讀 7981

1、簡介及常見子類

layoutparams,全稱layoutparameters。layout是布局,而parameters乃是引數的意思,這個類一般用在自定義的view控制項,或是獲取view的寬高值上。

fill_parent、match_parent和wrap_content。

如果希望定義一些其他的引數如margin、padding等等,就需要用到layoutparams的子類。

常見直接子類

abslistview.layoutparams

, absolutelayout.layoutparams

, gallery.layoutparams

, viewgroup.marginlayoutparams

, viewpager.layoutparams

,windowmanager.layoutparams

常見間接子類

, actionmenuview.layoutparams

, basecardview.layoutparams

, drawerlayout.layoutparams

, framelayout.layoutparams

,gridlayout.layoutparams

, gridlayoutmanager.layoutparams

, linearlayout.layoutparams

, linearlayoutcompat.layoutparams

, radiogroup.layoutparams

,recyclerview.layoutparams

, relativelayout.layoutparams

, slidingpanelayout.layoutparams

, staggeredgridlayoutmanager.layoutparams

,tablelayout.layoutparams

, tablerow.layoutparams

, *******.layoutparams

2、常見方法

view.getlayoutparams();

字面上好像是返回該view對應的layoutparams。但實際上返回的為父view的layoutparams,這個其實比較好理解,因為layoutparams實際上就是告訴父view如何去設定子view布局的。谷歌官方文件中說的很清楚,如果該view沒有掛靠在父view或是setlayoutparams這個方法沒有呼叫成功,則該方法會返回null;而如果該view已經掛靠在父view上,該方法永遠不會返回null。

viewgroup.setlayoutparams(params);

viewgroup設定它的layoutparams引數,如何去布局子類控制項。

3、在自定義viewgroup時的用法

在自定義viewgroup時,可以使用layoutparams來為viewgroup中的子控制項設定引數。

如:定義乙個新的layoutparams用來給新新增的元件設定布局引數。

layoutparams lp = new layoutparams(layoutparams.wrap_content, layoutparams.wrap_content);//構造方法中的兩個引數分別為寬高

lp.addrule(relativelayout.align_parent_layout, true); //如果希望新增其他的引數,可以使用addrule方法,此處設定引數為對齊父view

viewgroup.this.addview(view, lp); //最後將要採用該引數的子view物件新增到viewgroup中

自定義viewgroup時設定對應的layoutparams,複寫以下方法即可,返回值可設定希望該viewgroup對應的的layouparams:

public

layoutparams

generatelayoutparams

(attributeset

attrs

)

類設計備忘錄

1 類的覆載 override 要覆載乙個方法,必須先在所屬類的基類中,使用virtual關鍵字把該方法宣告為虛方法。宣告乙個虛方法,表示該方法可以 而非必需 被派生類所覆載。派生類可以在方法宣告中使用override關鍵字來實現基類虛方法。派生類中的覆載方法必須宣告為和基類方法擁有同樣的作用域 返...

常見異常備忘錄

異常 1.new file string path 這個path不能為空,否則空指標 2.listview資料更新導致的陣列越界異常arrayoutofbound listview通常會對應乙個資料集,一般用list儲存。listview重新整理時,首先呼叫adapter的getcount getc...

怎麼把蘋果的備忘錄轉到安卓系統

我的閨蜜小張之前一直使用的是蘋果手機,她使用過蘋果6s和iphone8plus,不過最近這次在更換手機的時候,小張為了支援國產手機,就入手了一款華為手機。在試用了一兩天的新華為手機後,小張表示這款華為手機也是比較好用的,於是小張就想把之前的蘋果手機備忘錄內容轉到安卓系統中以便繼續使用。彩色便簽 不過...