Skip to content

Commit

Permalink
修改library依赖方式,防止与主项目冲突
Browse files Browse the repository at this point in the history
  • Loading branch information
CodingEnding committed Jul 28, 2018
1 parent eb6e6bf commit 226a14f
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 3 deletions.
93 changes: 91 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PopupLayout
# PopupLayout


PopupLayout是通用弹出布局辅助库,允许开发者从顶部、底部、左侧、右侧和中心这五个位置弹出自己指定的布局。
Expand Down Expand Up @@ -26,10 +26,99 @@ dependencies {

### 基本使用

### 监听器
PopLayout的使用非常简单,只需要执行以下两步:

**1.初始化PopLayout**

通过调用静态方法init初始化PopLayout。这个方法有两个参数:第一个参数是Context对象,第二个参数代表弹出布局的内容,可以将layout资源Id或者View对象作为参数传入,如下所示:

```
//1.使用layout资源Id作为弹出布局的内容
PopupLayout popupLayout=PopupLayout.init(MainActivity.this, R.layout.layout_left);//这里
//2.使用View作为弹出布局的内容
View view=View.inflate(MainActivity.this,R.layout.layout_bottom_menu,null);
PopupLayout popupLayout=PopupLayout.init(MainActivity.this,view);
```

**2.在指定位置显示弹出布局**

PopupLayout可以从屏幕顶部、底部、左侧、右侧和中心弹出(默认从底部弹出),如下所示:

```
//从左侧弹出
popupLayout.show(PopupLayout.POSITION_LEFT);
//默认从底部弹出
popupLayout.show();
```

position的可选值:
- POSITION_LEFT
- POSITION_RIGHT
- POSITION_CENTER
- POSITION_TOP
- POSITION_BOTTOM

### 关闭弹出布局

点击弹出布局之外的区域,PopupLayout会被自动关闭。当然,也可以通过调用dismiss或hide方法手动关闭。这两个方法的区别在于hide只是隐藏弹出布局,并不会释放资源;而dismiss会销毁弹出布局并释放资源。通常情况下,建议使用dismiss方法。

**注意,**在Activity退出时必须使用dismiss方法销毁弹出布局,释放资源。

### 限制弹出布局的大小

默认情况下,PopupLayout会根据不同的弹出位置自动适配弹出布局的大小。具体而言,如果从顶部/底部弹出,宽度为MATCH_PARENT,高度为WRAP_CONTENT;如果从左侧/右侧弹出,宽度为WRAP_CONTENT,高度为MATCH_PARENT;如果从中心弹出,宽度为WRAP_CONTENT,高度为WRAP_CONTENT。

当然,PopupLayout也提供了setHeight和setWidth两个方法用于手动设置弹出布局的大小。这两个方法原型如下:

```
/**
* 设置弹出布局的高度
* @param height 高度
* @param dpMode 是否以dp为单位
*/
public void setHeight(int height,boolean dpMode)
/**
* 设置弹出布局的宽度
* @param width 宽度
* @param dpMode 是否以dp为单位
*/
public void setWidth(int width,boolean dpMode)
```

**注意,**这两个方法必须要在调用show方法之前使用才有效。

### 相关方法

| 方法名 | 返回值| 说明 |
| :---------|:-----|:-----|
| static init(Context context,@LayoutRes int contentLayoutId) | PopupLayout | 初始化弹出布局 |
| static init(Context context,View contentView) | PopupLayout | 初始化弹出布局 |
| show(int position) | void | 从指定位置显示弹出布局 |
| show()| void | 默认从底部显示弹出布局 |
| dismiss() | void | 隐藏弹出布局(同时会销毁弹出布局,释放资源),建议使用 |
| hide() | void | 隐藏弹出布局(不会销毁弹出布局),不会触发DismissListener |
| setUseRadius(boolean useRadius) | void | 是否使用圆角特性(默认使用) |
| setHeight(int height,boolean dpMode) | void | 设置弹出布局的高度 |
| setWidth(int width,boolean dpMode) | void | 设置弹出布局的宽度 |
| setDismissListener(DismissListener dismissListener) | void | 设置Dismiss监听器(在弹出布局消失时触发) |


### 监听器

PopupLayout允许使用者监听弹出布局的消失事件,只需要为PopupLayout设置DismissListener即可,如下所示:

```
PopupLayout popupLayout=PopupLayout.init(MainActivity.this, R.layout.layout_bottom);
popupLayout.setDismissListener(new PopupLayout.DismissListener() {
@Override
public void onDismiss() {
Toast.makeText(MainActivity.this,"弹出窗口关闭",Toast.LENGTH_SHORT).show();
}
});//添加监听器
```

## Blog

Expand Down
2 changes: 1 addition & 1 deletion library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:26.0.0-beta1'
compileOnly 'com.android.support:appcompat-v7:26.0.0-beta1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
Expand Down

0 comments on commit 226a14f

Please sign in to comment.