ScrollView 的一些屬性

在 Google 的 Android 開發(fā)文檔,對于 ScrollView 有如下介紹

1.XML屬性

android:fillViewport
這是 ScrollView 獨(dú)有的屬性,用來定義 ScrollView 對象是否需要拉伸自身內(nèi)容來填充
viewport 扔字,這個(gè) viewport 應(yīng)該是指布局文件中為ScrollView指定的區(qū)域巨柒。
這個(gè)屬性也可以在代碼中通過 setFillViewport(boolean) 方法指定

android:overScrollMode
這是繼承于 View 的屬性畅哑,也很常用蒙保。用于定義 over-scrolling behavior
也就是滑動到超出內(nèi)容邊緣的時(shí)候的行為龄糊。
這個(gè)屬性很奇特玩焰,在 Android 官方文檔的 View 的 XML 屬性中找不到介紹
但既然能用由驹,肯定在R.attrs文件中有定義,在 Android 平臺的源碼及資源文件中
一定能找到
隨便找一個(gè)項(xiàng)目昔园,在External Libraries 中找到 Android Platform 的源碼及資源文件
也就是 android.jar 和 res 文件夾蔓榄,在 res->values->attrs 文件中查找 overScrollMode
最終在
<declare-styleable name="View"></declare-styleable>標(biāo)簽中找到
這證明它的確是 View 的屬性


1.png

這說明官方文檔也不是最完整準(zhǔn)確的∧眨或者也有其他原因甥郑,但是暫時(shí)不知道。

2.ScrollView 中嵌入 ListView 引發(fā)的錯(cuò)誤
ScrollView 中只能包含一個(gè)子布局荤西。如果這個(gè)子布局中恰好還有一個(gè) ListVie 組件
那么這個(gè) ListView 的繪制會出現(xiàn)問題 ---- 無論在 xml 布局中如何指定 ListView
的寬高澜搅,ListView 就只能顯示一條數(shù)據(jù),不顯示其他數(shù)據(jù)
解決辦法就是在代碼中動態(tài)指定 ListView 的繪制參數(shù) LayoutParams 邪锌,將每一個(gè)
item 的高度累加勉躺,計(jì)算出總的高度,賦值給 ListView
具體代碼如下:

public void setListViewHeightBasedOnChildren(ListView listView) {
// 獲取ListView對應(yīng)的Adapter
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
// listAdapter.getCount()返回?cái)?shù)據(jù)項(xiàng)的數(shù)目
View listItem = listAdapter.getView(i, null, listView);
// 計(jì)算子項(xiàng)View 的寬高
listItem.measure(0, 0);
// 統(tǒng)計(jì)所有子項(xiàng)的總高度
totalHeight += listItem.getMeasuredHeight();
}

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1) + 5);
    // listView.getDividerHeight()獲取子項(xiàng)間分隔符占用的高度
    // params.height最后得到整個(gè)ListView完整顯示需要的高度
    listView.setLayoutParams(params);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末觅丰,一起剝皮案震驚了整個(gè)濱河市饵溅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妇萄,老刑警劉巖蜕企,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咬荷,死亡現(xiàn)場離奇詭異,居然都是意外死亡糖赔,警方通過查閱死者的電腦和手機(jī)萍丐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門轩端,熙熙樓的掌柜王于貴愁眉苦臉地迎上來放典,“玉大人,你說我怎么就攤上這事基茵》芄梗” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵拱层,是天一觀的道長弥臼。 經(jīng)常有香客問我,道長根灯,這世上最難降的妖魔是什么径缅? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮烙肺,結(jié)果婚禮上纳猪,老公的妹妹穿的比我還像新娘。我一直安慰自己桃笙,他們只是感情好氏堤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搏明,像睡著了一般鼠锈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上星著,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天购笆,我揣著相機(jī)與錄音,去河邊找鬼虚循。 笑死同欠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的邮丰。 我是一名探鬼主播行您,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剪廉!你這毒婦竟也來了娃循?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤斗蒋,失蹤者是張志新(化名)和其女友劉穎捌斧,沒想到半個(gè)月后笛质,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捞蚂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年妇押,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姓迅。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡敲霍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丁存,到底是詐尸還是另有隱情肩杈,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布解寝,位于F島的核電站扩然,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏聋伦。R本人自食惡果不足惜夫偶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望觉增。 院中可真熱鬧兵拢,春花似錦、人聲如沸抑片。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敞斋。三九已至截汪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間植捎,已是汗流浹背衙解。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留焰枢,地道東北人蚓峦。 一個(gè)月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像济锄,于是被迫代替她去往敵國和親暑椰。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容