Android控制項組合應用三

2021-08-25 20:38:07 字數 1826 閱讀 3953

控制項和relativelayout

進行了一些熱身運動,接下來,listview

登場。

,但是仔細一想,又覺得在listview

中難以實現這麼複雜的顯示。我們不妨就用listview

,看看能否仿製出來他的效果。

對於listview

來說,現在每乙個項,即其中每乙個item

都不再是我們熟悉的簡單的核取方塊,或者多行文字,而是**並茂並且有布局要求的形態。除此之外,還要注意到,這個列表框的第一項和最後一項是固定的,分別放置了「重新整理」和「更多」兩個item

,無論列表框中有多少項,這兩個item

都存在。如果能把這兩個item

作為列表框的乙個不變的組成部分,而只是用資料填充中間有資料項,應該就差不多了。

基於上述觀察和分析,我們可以通過為listview

新增headerview

和footerview

來解決這兩個特殊的item

問題,既然是兩個view

,那我們就先新增兩個布局的xml

,分別作為headerview

和footerview

。檔案內容如下:

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

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

有了這兩個布局檔案,就可以自定義我們自己的listview

了,新建乙個bloglistview

的class

,繼承自listview。

現在的問題是什麼時候把這兩個view

加進來呢,思考ing

……沒錯,在該控制項完成布局的時候就要加進來了,該類的**如下:

package com.wenbin.test; import com.wenbin.test.site.site; import android.content.context; import android.util.attributeset; import android.view.layoutinflater; import android.view.view; import android.widget.listview; public class bloglistview extends listview public bloglistview(context context, attributeset attrs) public bloglistview(context context, attributeset attrs, int defstyle) @override protected void onfinishinflate() }); view footerview=li.inflate(r.layout.bloglistfooter, null); footerview.setonclicklistener(new onclicklistener() }); addheaderview(headerview); addfooterview(footerview); } public void init(site site) } public void refresh() public void more() public site getsite() }

由於是自定義控制項,所以要在main.xml

中加入它的話,得把布局寫成下面這樣:

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

其中的divider

屬性是定義item

間的分隔條的。

最後,執行結果發現沒有顯示出列表來,那是因為它沒有資料,為listview

加簡單的測試資料例如陣列這事就不在這寫**了,反正接下來就該新增正式的資料了。

Android控制項組合應用二

縱觀整個介面,可以分成上下兩塊,一塊是頂端的操作條,另一塊是佔主體的列表框。先從頂端的操作條開始,在這裡,很容易分解成三個部分,左側的寫微博按鈕,中間的使用者名稱顯示,右側的重新整理按鈕。兩個按鈕的風格是一樣的,都是有常規和按下兩種狀態,這種按鈕是非常常用的,我的做法是 1.在drawable 資料...

Android控制項組合應用二

縱觀整個介面,可以分成上下兩塊,一塊是頂端的操作條,另一塊是佔主體的列表框。先從頂端的操作條開始,在這裡,很容易分解成三個部分,左側的寫微博按鈕,中間的使用者名稱顯示,右側的重新整理按鈕。兩個按鈕的風格是一樣的,都是有常規和按下兩種狀態,這種按鈕是非常常用的,我的做法是 1.在drawable 資料...

Android控制項組合應用七(結局,附原始碼)

前文中我們利用webview 來處理url 中的顯示,並且基本能達到目標,但是還是有一兩處細節需要處理,以提公升使用者體驗。二是下來以後,要根據的大小動態調整顯示效果,不能出現webview 太大而太小時的白邊。由此,我們從webview 繼承乙個picturewebview 專門解決上面這兩個問題...