如何實現可動態調整隱藏header的listview
雷鬼 需求:根據某種需要,可能需要動態調整listview的頁首頁尾,譬如將header作為顯示板使用。
難點:listview.addheaderview()方法必須在setadapter()方法前呼叫,否則就會拋異常。至於為什麼會拋異常,檢視下listview的源**即可發現。因此,在設定headerview之後又想將headerview移除或者隱藏,則需要繞很大的彎子:將adapter儲存起來-移除headerview-(或者更換headerview)-再將adapter設定上去。
隱藏headerview思路:使用view.gone屬性進行隱藏
嘗試1.itemview結構如下:
android:id="@+id/item_root"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="vertical" >
android:id="@+id/tv_1"
/>
android:id="@+id/tv_2"
/>
此時,有如下邏輯:
listview listview = ***x;
listview.addhearderview(item_root);
listview.setadapter(adapter);
adapter.add(***xx);新增資料
item_root.setvisibility(view.gone);
按道理,最後一句應該可以起到隱藏headerview的目的,但實際效果(魅族mx上測試發現),item_root的地方的確沒有控制項了,但item_root占用的50dip高度還在,即原來headerview的地方變成了一片空白區域!和view.invisibile效果一樣了,汗死!
繼續嘗試如下,修改itemview的結構:
android:id="@+id/item_root"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="vertical" >
android:id="@+id/item_container"
android:id="@+id/tv_1"
/>
android:id="@+id/tv_2"
/>
此結構較之前的結構增加了乙個多餘的layout(
item_container
)來囊括item內部控制項。此時,如果在
item_container
.setvisibility(view.gone)則可以完美實現隱藏headerview的目的!
結論:view.gone屬性貌似不作用在根layout上。
新的問題:
如果在item_root上使用了shape背景,且此背景存在minsize,那麼此方法又失效了。。。
規避處理:如果的確必須要在headerview上新增背景background的話,那麼請將background設定在
item_container上吧,不要設定在
item_root上,如此就可以規避新的問題了。
陣列實現下壓棧(可動態調整陣列大小)
public class resizingarraystackimplements iterable 獲取棧大小 return public int size 調整棧的大小 param max private void resize int max override public iteratori...
QML如何實現視窗縮放隱藏
上面實現了視窗以矩形的方式進行縮放隱藏和顯示。該功能主要使用了qml動畫中的numberanimation來實現,下面簡單介紹一下numberanimation。numberanimation顧名思義就是數字動畫,可以改變型別為數值的屬性,從而產生一系列的動畫,例如,width,height,rad...
低成本FPGA中實現動態相位調整
在fpga中,動態相位調整 dpa 主要是實現lvds介面接收時對時鐘和資料通道的相位補償,以達到正確接收的目的。altera的高階fpga,如stratix r 系列中自帶有dpa電路,但低端的fpga,如cyclone r 系列中是沒有的。下面介紹如何在低端fpga中實現這個dpa的功能。實現架...