Android庫:ExpandableSelector
ExpandableSelector是一個Android庫用于在一個動畫容器中創建一個of Button/ImageButton控件列表,支持關閉和展開。

使用說明:
在布局中添加ExpandableSelector
<com.karumi.expandableselector.ExpandableSelector android:id="@+id/es_sizes" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
在Activity或者Fragment的某個生命周期中創建一個ExpandableItem的list,然后把它們用在ExpandableSelector控件中:
private void initializeSizesExpandableSelector() { ExpandableSelector sizesExpandableSelector = (ExpandableSelector) findViewById(R.id.es_sizes); List<ExpandableItem> expandableItems = new ArrayList<ExpandableItem>(); expandableItems.add(new ExpandableItem("XL")); expandableItems.add(new ExpandableItem("L")); expandableItems.add(new ExpandableItem("M")); expandableItems.add(new ExpandableItem("S")); sizesExpandableSelector.showExpandableItems(expandableItems); }
通過ExpandableSelectorListener來監聽動畫事件:
private void configureExpandableSelectorListener() { sizesExpandableSelector.setExpandableSelectorListener(new ExpandableSelectorListener() { @Override public void onCollapse() { //Do something here } @Override public void onExpand() { //Do something here } @Override public void onCollapsed() { //Do something here } @Override public void onExpanded() { //Do something here } }); }
通過OnExpandableItemClickListener來監聽點擊事件:
private void configureExpandableSelectorClickListener() { sizesExpandableSelector.setOnExpandableItemClickListener(new OnExpandableItemClickListener() { @Override public void onExpandableItemClickListener(int index, View view) { //Do something here } }); }
自定義
可以輕松的實現ExpandableItem的自定義。只需在主題中設置一個expandableItemSyle 屬性,然后讓這個屬性引用一個自定義的樣式。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="expandableItemStyle">@style/ExpandableItemStyle</item> </style> <style name="ExpandableItemStyle"> <item name="android:layout_height">@dimen/item_size</item> <item name="android:layout_width">@dimen/item_size</item> <item name="android:background">@drawable/bg_item_with_title</item> <item name="android:layout_margin">@dimen/item_margin</item> <item name="android:textColor">@color/gray</item> <item name="android:textSize">@dimen/item_text_size</item> </style>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!