在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):Yalantis/SearchFilter开源软件地址(OpenSource Url):https://github.com/Yalantis/SearchFilter开源编程语言(OpenSource Language):Kotlin 77.7%开源软件介绍(OpenSource Introduction):SearchFilterCheck this project on dribbble Read how we did it on our blog ##Requirements
##Usage Add to your root build.gradle: allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
} Add the dependency: dependencies {
compile 'com.github.Yalantis:SearchFilter:v1.0.4'
} How to use this libraryFirstly you need to place <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:paddingRight="16dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
android:src="@drawable/ic_alarm"
android:tint="@android:color/white" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Questions"
android:textColor="@android:color/white"
android:textSize="20sp" />
<android.support.v7.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_search"
android:tint="@android:color/white" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E4E6E3"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/container_height"
tools:listitem="@layout/item_list" />
<com.yalantis.filter.widget.Filter
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
</android.support.design.widget.CoordinatorLayout>
After that you need to create a class that extends class Adapter extends FilterAdapter<Tag> {
Adapter(@NotNull List<? extends Tag> items) {
super(items);
}
@NotNull
@Override
public FilterItem createView(int position, Tag item) {
FilterItem filterItem = new FilterItem(ExampleActivity.this);
filterItem.setStrokeColor(mColors[0]);
filterItem.setTextColor(mColors[0]);
filterItem.setCheckedTextColor(ContextCompat.getColor(ExampleActivity.this, android.R.color.white));
filterItem.setColor(ContextCompat.getColor(ExampleActivity.this, android.R.color.white));
filterItem.setCheckedColor(mColors[position]);
filterItem.setText(item.getText());
filterItem.deselect();
return filterItem;
}
} To receive all the events from the private FilterListener<Tag> mListener = new FilterListener<Tag>() {
@Override
public void onFiltersSelected(@NotNull ArrayList<Tag> filters) {
}
@Override
public void onNothingSelected() {
}
@Override
public void onFilterSelected(Tag item) {
}
@Override
public void onFilterDeselected(Tag item) {
}
}; Basically mFilter = (Filter<Tag>) findViewById(R.id.filter);
mFilter.setAdapter(new Adapter(getTags()));
mFilter.setListener(this);
//the text to show when there's no selected items
mFilter.setNoSelectedItemText(getString(R.string.str_all_selected));
mFilter.build(); For more usage examples please review sample app Let us know!We’d be really happy if you sent us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding the animation. P.S. We’re going to publish more awesomeness wrapped in code and a tutorial on how to make UI for iOS (Android) better than better. Stay tuned! License
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论