首先,有這么一個(gè)需求沿量,有一個(gè)texiview始終在ScrollView的底部,當(dāng)內(nèi)容長(zhǎng)度不超過(guò)屏幕冤荆,textview在屏幕底部欧瘪,當(dāng)內(nèi)容長(zhǎng)度超過(guò)屏幕的時(shí)候,在內(nèi)容的底部匙赞,問(wèn)題是這個(gè)長(zhǎng)度還可以根據(jù)選擇不同來(lái)進(jìn)行伸縮佛掖。好了 ,需求就是這么一個(gè)需求涌庭。下面開(kāi)始操作芥被。
一想很簡(jiǎn)單的,嵌套一個(gè)relativelayout直接在parent的底部嘛坐榆,然后發(fā)現(xiàn)拴魄,當(dāng)內(nèi)容長(zhǎng)度不夠的時(shí)候,這個(gè)relativelayout滿屏不了,這是什么設(shè)置匹中?夏漱?一臉懵逼的,去百度顶捷。原來(lái)在scrollview里面的LinearLayout是依賴?yán)锩娴脑貋?lái)固定高度的挂绰,現(xiàn)在你里面的元素TM告訴我,我的依賴你來(lái)?yè)螡M屏服赎,LinearLayout拒絕了葵蒂。這時(shí)候就需要給scrollview去設(shè)置一個(gè)屬性:fillViewport,當(dāng) fillViewport = true的時(shí)候重虑,里面的元素才會(huì)強(qiáng)強(qiáng)滿屏践付。
然后運(yùn)行啊,發(fā)現(xiàn)當(dāng)內(nèi)容長(zhǎng)度超過(guò)屏幕的時(shí)候缺厉,上面的內(nèi)容和底部的textview重疊了永高,重疊了。提针。想想不行啊乏梁,在Relayoutlayout里面,上面的內(nèi)容沒(méi)有和textview有關(guān)系关贵,好的,建立關(guān)系卖毁,上面的內(nèi)容在textview上面揖曾,運(yùn)行。亥啦。我擦炭剪。。上面內(nèi)容過(guò)長(zhǎng)翔脱,顯示不全奴拦,srcoview完全沒(méi)用啊。然后查網(wǎng)上怎么做届吁,額错妖。。好像這個(gè)情況不好查疚沐,那只能自力更生了暂氯。。然后就是漫長(zhǎng)的各種試亮蛔。痴施。還想到代碼動(dòng)態(tài)控制,發(fā)現(xiàn)跟直接寫(xiě)xml沒(méi)什么區(qū)別,怎么弄都有缺陷辣吃。动遭。這種時(shí)候抓耳撓腮,我想死的心都有了神得,一個(gè)強(qiáng)迫癥患者和完美主義者怎么能容忍這種缺陷厘惦,一定有辦法的。最后經(jīng)過(guò)長(zhǎng)時(shí)間的思考和嘗試循头,把linearlayout和relativelayout特點(diǎn)全部回顧一遍绵估。最后腦瓜一閃,有辦法了卡骂。国裳。試試看。
解決辦法:在scrollview還是需要那個(gè)滿屏的屬性全跨,然后用LinearLayout將這個(gè)textview包裹起來(lái)缝左,設(shè)置 android:orientation="horizontal" ,并且設(shè)置MATH_PARENT浓若,然后gravity設(shè)置bottom渺杉,來(lái)來(lái)來(lái),我們看看效果挪钓,成功了是越!哈哈哈!勞動(dòng)人民的智慧啊碌上,嘚瑟一下倚评!~( ̄▽ ̄~)(~ ̄▽ ̄)~
反思:為什么我需要經(jīng)過(guò)那么久的嘗試以后才想到這個(gè)做法呢?馏予?總結(jié)兩點(diǎn)天梧,第一,想到固定底部這種問(wèn)題霞丧,第一個(gè)想到的都是relativelayout呢岗,然后就在這條不歸路上各種嘗試,這種刻板印象應(yīng)該改改(如果有空的話蛹尝,多想想一個(gè)問(wèn)題能不能用多種方法解決后豫,不然,長(zhǎng)久以往突那,刻板印象就產(chǎn)生了)硬贯。第二,還是自己的基礎(chǔ)不夠扎實(shí)陨收,linearlayout和relativelayout的中特性和特點(diǎn)運(yùn)用的熟練程度不夠饭豹,看來(lái)代碼敲得還不夠多啊鸵赖。(人性的弱點(diǎn)啊,懶癌加上重度拖延癥拄衰,每每看劇刷綜藝的時(shí)候就已經(jīng)把代碼忘到腦后了它褪。)這周還得把popupwindow的showAsDropDown第三個(gè)參數(shù)Gravity設(shè)置沒(méi)效果的原因弄清楚啊。五一的小假期得把這個(gè)給弄清楚翘悉,不然上班又得忙得團(tuán)團(tuán)轉(zhuǎn)了茫打。
最后,這個(gè)寫(xiě)的是自己的想法妖混,如果有人找到這篇文章呢老赤,不想看前面和后面直接control+F直接查解決辦法就好啦~~收工!