DialogPlus
DialogPlus提供Android L移动对话框动画
DialogPlus提供了3个位置:
- 上图:对话框将出现在动画顶部
- 中心:对话将出现在动画中心
- 下图:对话框将出现在动画在屏幕的底部
DialogPlus提供3个内容类型:
- ListHolder:项目将在列表视图中显示
- GridHolder:项目将在GridView显示
- ViewHolder:您的自定义视图将在内容显示
摇篮
compile 'com.orhanobut:dialogplus:1.11@aar'
用法
使用Builder创建对话框。
基本用法
DialogPlus dialog = DialogPlus.newDialog(this)
.setAdapter(adapter)
.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
}
})
.setExpanded(true) // This will enable the expand feature, (similar to android L share dialog)
.create();
dialog.show();
更多的选择
启用扩展动画一样的Android L合租对话框
.setExpanded(true) // default is false, only works for grid and list
将扩大动画默认高度
.setExpanded(true, 300)
选择不同的持有人。
- 使用ListView控件作为内容载体,注意,这是默认的内容类型。
setContentHolder(new ListHolder())
- 如果你想使用自定义视图的对话框使用ViewHolder作为内容载体。通过资源ID
.setContentHolder(new ViewHolder(R.layout.content))
或传本身查看
.setContentHolder(new ViewHolder(view))
- 如果你想使用GridView控件的对话框使用GridHolder。您必须设置列数。
.setContentHolder(new GridHolder(COLUMN_NUMBER))
- 获得持有人来看,ListView中,GridView控件或自定义视图
View view = dialogPlus.getHolderView();
- 设置对话框中的位置。底部(默认),TOP或CENTER。您还可以结合其他的重力选项。
.setGravity(Gravity.CENTER)
- 定义如果对话框取消,当背部压或退出对话框单击应该关闭
.setCancelable(true)
- 设置适配器,该适配器将用于填补ListHolder和GridHolder的内容。如果内容持有人ListHolder或GridHolder这是必需的。如果内容保持器是ViewHolder它不是必需的。
.setAdapter(adapter);
- 选择列表或网格架时,设置一个项目单击侦听器。这样,你就可以有回调时,点击您的项目之一
.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
}
})
- 你以处理所有可能的单击事件对话框中设置一个全球性的点击侦听器。然后,您可以通过使用ID识别看待和处理正确的行为。只有具有ID意见会触发此事件。
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(DialogPlus dialog, View view) {
}
})
- 添加的利润到您的对话框。它们被设置为0时除外重力中心。在这种情况下,被施加基本边距
.setMargin(left, top, right, bottom)
- 集填充到保持
.setPadding(left, top, right, bottom)
- 使用布局资源的ID设置页脚视图
.setFooter(R.layout.footer)
或者使用视图
.setFooter(view)
- 获取页脚视图
View view = dialogPlus.getFooterView();
- 使用布局资源的ID设置标题视图
.setHeader(R.layout.header)
或者使用视图
.setHeader(view)
- 获得头视图
View view = dialogPlus.getHeaderView();
- 集动画资源
.setInAnimation(R.anim.abc_fade_in)
.setOutAnimation(R.anim.abc_fade_out)
- 设置宽度和高度为内容
.setContentWidth(ViewGroup.LayoutParams.WRAP_CONTENT) // or any custom width ie: 300
.setContentHeight(ViewGroup.LayoutParams.WRAP_CONTENT)
- 驳回监听器,触发时被关闭对话框
.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogPlus dialog) {
}
})
- 取消监听器触发时的对话由后退按钮或点击取消外
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogPlus dialog) {
}
})
- BackPress监听器,触发按下后退按钮时
.setOnBackPressListener(new OnBackPressListener() {
@Override
public void onBackPressed(DialogPlus dialog) {
}
})
- 更改内容容器背景下,作为默认的白色
.setContentBackgroundResource(resource)
- 更改覆盖容器的背景,为默认它是半透明的黑色
.setOverlayBackgroundResource(resource)