本文主要是介绍翻翻git之---足以取代底部PoPupWindows的强大控件 BottomSheet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载请注明出处:王亟亟的大牛之路
这两天都在忙公事吧,文章断更了2天,不过为了发而发反而影响质量,还是要弄一些至少大家有使用价值的东西,顺道把之前一直在安利的库每日一更了下,这里继续给出案例地址:https://github.com/ddwhan0123/Useful-Open-Source-Android
今天贴的是一个自定义的BottomSheet,先来贴下效果图
那些传统的分享啊,选择啊等等pop操作的事他都能干,而且他还是基于MD的设计(弄死那些脑残UI)。
作者写了一个使用介绍,是英文版的,英文好的小伙可以自己看http://soarcn.github.io/BottomSheet(我这里更多的做一个翻译和解释的操作)
OK,我们来看看怎么引用
Grade
compile 'com.cocosw:bottomsheet:1.+@aar'
Maven
<dependency><groupId>com.cocosw</groupId><artifactId>bottomsheet</artifactId><version>1.x</version><type>apklib</type>
</dependency>
zip:https://github.com/soarcn/BottomSheet/zipball/master
tar.gz:https://github.com/soarcn/BottomSheet/tarball/master
这边补充下,要使用的话 Compile版本要在 21+
使用的话就android 2.1+都可以
作者做了一些列的引用场景,诸如从XML中读取每一条item内容的,像这样
<menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/share" android:title="@string/share" android:icon="@drawable/perm_group_messages"/><item android:id="@+id/upload" android:title="@string/upload" android:icon="@drawable/perm_group_system_clock"/><item android:id="@+id/call" android:title="@string/call" android:icon="@drawable/perm_group_phone_calls"/><group android:id="@+id/helpgroup"><item android:id="@+id/help" android:title="@string/help" android:icon="@drawable/perm_group_system_tools"/></group>
</menu>
然后在我们的业务类里面做一下操作,就可以完成点击的逻辑行为了
new BottomSheet.Builder(this).title("title").sheet(R.menu.list).listener(new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {switch (which) {case R.id.help:q.toast("Help me!");break;}}}).show();
You can get a menu object from bottomsheet instance from 1.1.0, and change it as you want, exactly like you manipulating android menu or actionbar actionitems. Please be aware that if you change the menu after showing the bottomsheet, you must call invalidate(), or no changes would be applied and your app might crash. Please check example application for more info.
获得bottomsheet实例的菜单对象,并改变它,你完全一样操纵机器人菜单或动作条actionitems 。请注意,如果你显示bottomsheet后更改菜单,您必须调用invalidate( ) ,或者没有修改将被应用,你的应用程序可能会崩溃。更多信息请查看示例应用程序。
当然,既然遵循MD那肯定也会有黑白2个风格,那首先你得预先设置个字的风格样式,像这样
<style name="BottomSheet.StyleDialog" parent="BottomSheet.Dialog"><item name="android:backgroundDimAmount">0.5</item><item name="android:windowAnimationStyle">@style/BottomSheet.Animation</item><item name="android:textColorPrimary">#DDffffff</item><item name="android:textColorSecondary">#8Affffff</item><item name="android:textColorHint">#42ffffff</item><item name="bs_dialogBackground">@color/abc_search_url_text_normal</item><item name="bs_dividerColor">@color/abc_search_url_text_pressed</item><item name="bs_numColumns">4</item><item name="bs_listStyle">@style/BottomSheet.StyleList</item></style>
然后在我们的Activity里做一下操作:
new BottomSheet.Builder(this, R.style.BottomSheet_StyleDialog).title("To " + adapter.getItem(position)).sheet(R.menu.list).listener(new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {ListAcitivty.this.onClick(adapter.getItem(position), which);}}).build();
作者是一个在悉尼的中国人(智商长得像中国人) Git:https://github.com/soarcn
有技术问题或者有私活可以微信我,记得标明出处,不然一般我都会无视,写写
周末愉快!!!!(下面那部分我本意不怎么想贴,但是貌似群众们还很喜欢,那就继续贴吧)
这篇关于翻翻git之---足以取代底部PoPupWindows的强大控件 BottomSheet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!