PopupWindow详细介绍:
PopupWindow是一个以弹窗方式呈现的控件,可以用来显示任意视图(View),而且会浮动在当前活动(activity)的顶部”。因此我们可以通过PopupWindow实现各种各样的弹窗效果,PopupWindow自定义布局比较方便,而且在显示位置比较自由不受限制,因此受到众多开发者的青睐。
实现效果图:
关于实现这个功能准备以下几点:
1:在build.gradle中加入:compile 'com.jakewharton:butterknife:7.0.1'或者导入butterknife的jar包
在最早我们通常用findviewbyid来进行绑定控件,这里我用Butterkinfe注解的方式来绑定空件,AndroidStudio有一个(Zelezny)这个插件,可以使大家在日常开发中更有效的缩短时间,下面教大家如何安装Zelezny这个插件:
(1):打开Settings选择Plugins,点击Browse Repositories
(2):在搜索框中输入Zelezny,选择Android ButterKnife Zelezny,点击lnstall
(3):最后点击Restart Android Studio重新启动即可
2:安装完插件以后教大家如何使用,首先我们将布局展示给大家:
注意:设置ToolBar背景颜色:
在values下的styles里设置ToolBar颜色
设置ToolBar颜色
(1):在上面的代码中我们可以看出,每个控件都有id关,这里教大家使用ButterKnife 插件以注解的方式去绑定控件,下面以图的方式呈现给大家:
(2):按住Alt+lnsert 选择Generate Butterknife lnjections
(3)最后一步选择你要绑定的控件:
3:Java代码:
//popuwindow下拉列表,属于组合式控件
public class MainActivity extends AppCompatActivity {
@Bind(R.id.supplier_list_product_tv)
TextView mProductTv; // 可以修改名称
@Bind(R.id.supplier_list_product)
LinearLayout mProduct; // 可以修改名称
@Bind(R.id.supplier_list_sort_tv)
TextView mSortTv;
@Bind(R.id.supplier_list_sort)
LinearLayout mSort; // 可以修改名称
@Bind(R.id.supplier_list_activity_tv)
TextView mActivityTv;
@Bind(R.id.supplier_list_activity)
LinearLayout mActivity; // 可以修改名称
@Bind(R.id.supplier_list_lv)
ListView mSupplierListLv;
//三个popuwindow所需的数据集合
private ArrayList
注意:在上面代码需注意几点:
1:在初始化PopupWindow中加载下拉文本布局
2:在初始化PopupWindow中加载PopupWindow动画资源文件:
(1)在res下创建anim,在anim中创建still资源文件:
(2)设置PopupWindow动画
3:在获取ListView对象里设置文本布局:
文本布局: