引用
dependencies {点击打开链接 compile 'com.github.florent37:expansionpanel:1.1.1' }
使用
<LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical" > <com.github.florent37.expansionpanel.ExpansionHeader android:layout_height="wrap_content" android:layout_width="match_parent" app:expansion_headerIndicator="@id/headerIndicator" app:expansion_layout="@id/expansionLayout" app:expansion_toggleOnClick="true"> <!-- HEADER --> ... <!-- HEADER INDICATOR --> <android.support.v7.widget.AppCompatImageView android:adjustViewBounds="true" android:id="@+id/headerIndicator" android:layout_gravity="center_vertical|right" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_width="wrap_content" app:srcCompat="@drawable/ic_expansion_header_indicator_grey_24dp" /> </com.github.florent37.expansionpanel.ExpansionHeader> <com.github.florent37.expansionpanel.ExpansionLayout android:id="@+id/expansionLayout" android:layout_height="wrap_content" android:layout_width="match_parent"> <!-- CONTENT --> </com.github.florent37.expansionpanel.ExpansionLayout> </LinearLayout>
header
1. 与他的扩展布局连接:expansion_layout(它们必须具有相同的父布局)
2. 用expansion_headerIndicator(一个view里面header的ID)定义指示view
3. 如果要在头文件被单击时展开/关闭,请设置expansion_toggleOnClick
4. 可以用expansion_headerIndicatorRotationExpanded和expansion_headerIndicatorRotationCollapsed来修改指针旋转。
Layout
1. 可以用“app:expansion_expanded="false”修改标签的默认扩展名
2. 布局可以用.toggle()编辑
3. 使用.setEnable(true/false)启用/禁用扩展Listener
只需将listener添加到ExpansionLayout中(不是头)获取expansion layout的状态
ExpansionLayout expansionLayout = findViewById(...); expansionLayout.addListener(new ExpansionLayout.Listener() { @Override public void onExpansionChanged(ExpansionLayout expansionLayout, boolean expanded) { } });
只打开一个
您可以设置多个扩展布局同时只打开1个
final ExpansionLayoutCollection expansionLayoutCollection = new ExpansionLayoutCollection(); expansionLayoutCollection.add(ex1); expansionLayoutCollection.add(ex2); expansionLayoutCollection.openOnlyOne(true);
或直接在XML中使用
扫描二维码关注公众号,回复:
931807 查看本文章
- ExpansionsViewGroupLinearLayout
- ExpansionsViewGroupFrameLayout
- ExpansionsViewGroupRelativeLayout
- ExpansionsViewGroupConstraintLayout
<com.github.florent37.expansionpanel.viewgroup.ExpansionsViewGroupLinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:expansion_openOnlyOne="true" android:orientation="vertical"> <!-- Expansions Header & Layouts --> </com.github.florent37.expansionpanel.viewgroup.ExpansionsViewGroupLinearLayout>
Horizontal
用HorizontalExpansionLayout 代替 ExpansionLayout
<com.github.florent37.expansionpanel.HorizontalExpansionLayout android:id="@+id/expansionLayout" android:layout_height="wrap_content" android:layout_width="match_parent"> <!-- CONTENT --> </com.github.florent37.expansionpanel.HorizontalExpansionLayout>
RecyclerView
实例:
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerHolder> { ... //add an ExpansionLayoutCollection to your recycler adapter private final ExpansionLayoutCollection expansionsCollection = new ExpansionLayoutCollection(); @Override public void onBindViewHolder(MyRecyclerHolder holder, int position) { //bind your elements //just add the ExpansionLayout (with findViewById) to the expansionsCollection expansionsCollection.add(holder.getExpansionLayout()); } }