package com.flyco.dialogsamples.ui; import android.content.Context; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.flyco.animation.BounceEnter.BounceBottomEnter; import com.flyco.animation.BounceEnter.BounceTopEnter; import com.flyco.animation.SlideEnter.SlideTopEnter; import com.flyco.animation.SlideExit.SlideBottomExit; import com.flyco.animation.SlideExit.SlideTopExit; import com.flyco.dialog.widget.popup.base.BasePopup; import com.flyco.dialogsamples.R; import com.flyco.dialogsamples.utils.T; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; public class CustomPopupActivity extends AppCompatActivity { @Bind(R.id.tv_top_left) TextView mTvTopLeft; @Bind(R.id.tv_top_right) TextView mTvTopRight; @Bind(R.id.tv_bottom_left) TextView mTvBottomLeft; @Bind(R.id.tv_bottom_right) TextView mTvBottomRight; @Bind(R.id.tv_center) TextView mTvCenter; private Context mContext = this; private SimpleCustomPop mQuickCustomPopup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac_custom_popup); ButterKnife.bind(this); mQuickCustomPopup = new SimpleCustomPop(mContext); // mQuickCustomPopup.setCanceledOnTouchOutside(false); } @OnClick(R.id.tv_center) void clickCenterBtn() { mQuickCustomPopup .alignCenter(true) .anchorView(mTvCenter) .gravity(Gravity.BOTTOM) .showAnim(new SlideTopEnter()) .dismissAnim(new SlideTopExit()) .offset(0, 0) .dimEnabled(false) .show(); } @OnClick(R.id.tv_top_left) void clickTopLeftBtn() { mQuickCustomPopup .anchorView(mTvTopLeft) .gravity(Gravity.BOTTOM) .offset(0, 0) .showAnim(new BounceTopEnter()) .dismissAnim(new SlideTopExit()) .dimEnabled(false) .show(); } @OnClick(R.id.tv_top_right) void clickTopRightBtn() { mQuickCustomPopup .anchorView(mTvTopRight) .offset(-10, 5) .gravity(Gravity.BOTTOM) .showAnim(new BounceTopEnter()) .dismissAnim(new SlideTopExit()) .dimEnabled(false) .show(); } @OnClick(R.id.tv_bottom_left) void clickBottomLeftBtn() { mQuickCustomPopup .anchorView(mTvBottomLeft) .offset(10, -5) .gravity(Gravity.TOP) .showAnim(new BounceBottomEnter()) .dismissAnim(new SlideBottomExit()) .dimEnabled(true) .show(); } @OnClick(R.id.tv_bottom_right) void clickBottomRightBtn() { mQuickCustomPopup .showAnim(null) .dismissAnim(null) .dimEnabled(true) .anchorView(mTvBottomRight) .offset(-10, -5) .dimEnabled(false) .gravity(Gravity.TOP) .show(); } class SimpleCustomPop extends BasePopup<SimpleCustomPop> { @Bind(R.id.tv_item_1) TextView mTvItem1; @Bind(R.id.tv_item_2) TextView mTvItem2; @Bind(R.id.tv_item_3) TextView mTvItem3; @Bind(R.id.tv_item_4) TextView mTvItem4; public SimpleCustomPop(Context context) { super(context); // setCanceledOnTouchOutside(false); } @Override public View onCreatePopupView() { View inflate = View.inflate(mContext, R.layout.popup_custom, null); ButterKnife.bind(this, inflate); return inflate; } @Override public void setUiBeforShow() { mTvItem1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, mTvItem1.getText()); } }); mTvItem2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, mTvItem2.getText()); } }); mTvItem3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, mTvItem3.getText()); } }); mTvItem4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, mTvItem4.getText()); } }); } } }