Skip to content

Commit

Permalink
新增show() 方法 isAnim 参数, 控制是否显示动画
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaosong520 committed May 15, 2017
1 parent dd78e06 commit 54da3d7
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 46 deletions.
2 changes: 0 additions & 2 deletions app/src/main/java/com/bigkoo/pickerviewdemo/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,8 @@ private void initTimePicker() {
//控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释)
//因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
Calendar selectedDate = Calendar.getInstance();

Calendar startDate = Calendar.getInstance();
startDate.set(2013, 0, 23);

Calendar endDate = Calendar.getInstance();
endDate.set(2019, 11, 28);
//时间选择器
Expand Down
9 changes: 5 additions & 4 deletions app/src/main/java/com/bigkoo/pickerviewdemo/TestFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ private void initTimePicker() {

Calendar endDate = Calendar.getInstance();
endDate.set(2019,11,28);
//时间选择器
//香蕉选择器
pvTime = new TimePickerView.Builder(getActivity(), new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {//选中事件回调
Expand All @@ -61,19 +61,20 @@ public void onTimeSelect(Date date, View v) {//选中事件回调
btn.setText(getTime(date));
}
})
.setType(new boolean[]{true, true, true, false, false, false})
.setType(new boolean[]{false, true, true, false, false, false})

.setLabel("", "", "", "", "", "") //设置空字符串以隐藏单位提示 hide label
.setDividerColor(Color.DKGRAY)
.setContentSize(20)
.setDate(selectedDate)
.setRangDate(startDate,selectedDate)
.setDecorView(mFrameLayout)//设置viewgroup,pickerview将会添加到这个viewgroup中
.setDecorView(mFrameLayout)//非dialog模式下,设置ViewGroup, pickerView将会添加到这个ViewGroup中
.build();
}

@Override
public void onClick(View v) {
pvTime.show(v);//弹出时间选择器,传递参数过去,回调的时候则可以绑定此view
pvTime.show(v,false);//弹出时间选择器,传递参数过去,回调的时候则可以绑定此view
}

private String getTime(Date date) {//可根据需要自行截取数据显示
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ public class BasePickerView {

protected View clickView;//是通过哪个View弹出的

private boolean isAnim = true;
public BasePickerView(Context context) {
this.context = context;

Expand Down Expand Up @@ -116,18 +117,30 @@ protected void init() {
protected void initEvents() {
}


/**
* show的时候调用
*
* @param view 这个View
* @param v (是通过哪个View弹出的)
* @param isAnim 是否显示动画效果
*/
private void onAttached(View view) {
decorView.addView(view);
contentContainer.startAnimation(inAnim);
public void show(View v, boolean isAnim) {
this.clickView = v;
this.isAnim = isAnim;
show();
}

public void show(boolean isAnim) {
this.isAnim = isAnim;
show();
}

public void show(View v) {
this.clickView = v;
show();
}


/**
* 添加这个View到Activity的根视图
* 添加View到根视图
*/
public void show() {
if (isDialog()) {
Expand All @@ -142,16 +155,20 @@ public void show() {
}
}


/**
* 添加这个View到Activity的根视图
* show的时候调用
*
* @param v (是通过哪个View弹出的)
* @param view 这个View
*/
public void show(View v) {
this.clickView = v;
show();
private void onAttached(View view) {
decorView.addView(view);
if(isAnim){
contentContainer.startAnimation(inAnim);
}
}


/**
* 检测该View是不是已经添加到根视图
*
Expand All @@ -174,43 +191,49 @@ public void dismiss() {
return;
}

dismissing = true;

//消失动画
outAnim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
if (isAnim){
//消失动画
outAnim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {

}
}

@Override
public void onAnimationEnd(Animation animation) {
decorView.post(new Runnable() {
@Override
public void run() {
dismissImmediately();
}
});
}
@Override
public void onAnimationEnd(Animation animation) {
dismissImmediately();
}

@Override
public void onAnimationRepeat(Animation animation) {
@Override
public void onAnimationRepeat(Animation animation) {

}
});
contentContainer.startAnimation(outAnim);
}
});
contentContainer.startAnimation(outAnim);
} else {
dismissImmediately();
}
dismissing = true;
}


}

public void dismissImmediately() {
//从activity根视图移除
decorView.removeView(rootView);
isShowing = false;
dismissing = false;
if (onDismissListener != null) {
onDismissListener.onDismiss(BasePickerView.this);
}

decorView.post(new Runnable() {
@Override
public void run() {
//从根视图移除
decorView.removeView(rootView);
isShowing = false;
dismissing = false;
if (onDismissListener != null) {
onDismissListener.onDismiss(BasePickerView.this);
}
}
});


}

Expand Down

0 comments on commit 54da3d7

Please sign in to comment.