DropDownView
A simple drop down view with built-in animations.
Gradle
Ensure your minSdkVersion is 19 or above:
android {
compileSdkVersion 25
defaultConfig {
applicationId "com.anthonyfdev.dropdownviewexample"
minSdkVersion 19
targetSdkVersion 25
}
}
Add jitpack repository to your root build.gradle:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add dependency to app level build.gradle:
dependencies {
compile 'com.github.AnthonyFermin:DropDownView:1.0.1'
}
Usage
Add view to xml:
<com.anthonyfdev.dropdownview.DropDownView
android:id="@+id/drop_down_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:containerBackgroundColor="#b71c1c"
app:overlayColor="#64000000"/>
Note: containerBackgroundColor defaults to colorPrimary (#3F51B5 if you don't have that defined)
and overlayColor defaults to #99000000 (60% alpha on black)
Bind views:
dropDownView = (DropDownView) findViewById(R.id.drop_down_view);
collapsedView = LayoutInflater.from(this).inflate(R.layout.view_my_drop_down_header, null, false);
expandedView = LayoutInflater.from(this).inflate(R.layout.view_my_drop_down_expanded, null, false);
Set header and expanded views to DropDownView:
dropDownView.setHeaderView(collapsedView);
dropDownView.setExpandedView(expandedView);
Call expand or collapse:
collapsedView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dropDownView.isExpanded()) {
dropDownView.collapseDropDown();
} else {
dropDownView.expandDropDown();
}
}
});
Optional DropDownListener:
/**
* A listener that wraps functionality to be performed when the drop down is successfully expanded
* or collapsed.
*/
private final DropDownView.DropDownListener dropDownListener = new DropDownView.DropDownListener() {
@Override
public void onExpandDropDown() {
adapter.notifyDataSetChanged();
ObjectAnimator.ofFloat(headerChevronIV, View.ROTATION.getName(), 180).start();
}
@Override
public void onCollapseDropDown() {
ObjectAnimator.ofFloat(headerChevronIV, View.ROTATION.getName(), -180, 0).start();
}
};
...
dropDownView.setDropDownListener(dropDownListener);