package com.mcxtzhang.coordinatordemo.parallex;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
import com.mcxtzhang.coordinatordemo.R;
public class ParallexActivity extends AppCompatActivity {
private static final String TAG = "zxt/ParallexActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parallex);
final View fab = findViewById(R.id.fab);
findViewById(R.id.btnShow).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int[] a = new int[2];
int[] b = new int[2];
v.getLocationInWindow(a);
v.getLocationOnScreen(b);
Log.d(TAG, "onClick() called with: a = [" + a[1] + "] b" + b[1] + "]");
int[] c = new int[2];
int[] d = new int[2];
fab.getLocationInWindow(c);
fab.getLocationOnScreen(d);
Log.d(TAG, "onClick() called with: c [" + c[1] + "] d" + d[1] + "]");
showCategoryPopupMenu(fab);
}
});
}
private PopupWindow mPopCategory;
private void showCategoryPopupMenu(View v) {
if (mPopCategory == null) {
View bgView = View.inflate(this, R.layout.item_rv, null);
bgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hidePopupWindow();
}
});
mPopCategory = new PopupWindow(bgView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
//这句话加上会使得popwindow有焦点,按back退出的时候就不会直接退出activity了
mPopCategory.setFocusable(true);
//设置点击窗口外边窗口消失
mPopCategory.setOutsideTouchable(true);
}
//mPopupBackground.showAtLocation(v, Gravity.BOTTOM, 0, 0);
if (!mPopCategory.isShowing()) {
mPopCategory.showAsDropDown(v);
}
}
private void hidePopupWindow() {
if (mPopCategory != null && mPopCategory.isShowing()) {
mPopCategory.dismiss();
}
}
}