package com.basic.security.widget;
|
|
import android.content.Context;
|
import android.graphics.drawable.ColorDrawable;
|
import android.os.SystemClock;
|
import android.util.AttributeSet;
|
import android.view.View;
|
import android.widget.ListPopupWindow;
|
import android.widget.ListView;
|
import android.widget.PopupWindow;
|
import android.widget.Spinner;
|
|
import com.basic.security.R;
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.fragment.HomeFragment;
|
import com.basic.security.fragment.helper.HomeGridViewAdapter;
|
|
import java.lang.reflect.Field;
|
|
public class CustomSpinner2 extends Spinner {
|
|
public CustomSpinner2(Context context) {
|
this(context, null);
|
initView();
|
}
|
|
public CustomSpinner2(Context context, AttributeSet attrs) {
|
this(context, attrs, 0);
|
initView();
|
}
|
|
public CustomSpinner2(Context context, AttributeSet attrs, int defStyle) {
|
super(context, attrs, defStyle, 0, 1);
|
initView();
|
}
|
|
private void initView() {
|
try {
|
Field f = this.getClass().getSuperclass().getDeclaredField("mPopup");
|
f.setAccessible(true);
|
ListPopupWindow listPopupWindow = (ListPopupWindow) f.get(this);
|
listPopupWindow.setAnimationStyle(R.style.ListPopupWindowAnimation);
|
listPopupWindow.setModal(false);
|
|
Field popupWindowField = listPopupWindow.getClass().getSuperclass().getDeclaredField("mPopup");
|
popupWindowField.setAccessible(true);
|
PopupWindow popupWindow = (PopupWindow)popupWindowField.get(listPopupWindow);
|
Field mOnDismissListenerField = popupWindow.getClass().getDeclaredField("mOnDismissListener");
|
mOnDismissListenerField.setAccessible(true);
|
final PopupWindow.OnDismissListener onDismissListener = (PopupWindow.OnDismissListener)(mOnDismissListenerField.get(popupWindow));
|
listPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
@Override
|
public void onDismiss() {
|
onDismissListener.onDismiss();
|
if (viewHolder != null) {
|
new Thread(){
|
@Override
|
public void run() {
|
SystemClock.sleep(10);
|
BaseApplication.getApplication().activity.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
// viewHolder.alarmPerson.setVisibility(View.VISIBLE);
|
// viewHolder.showMatchPersonList.setVisibility(VISIBLE);
|
if ("人脸".equals(viewHolder.alarm.get("alarmType"))) {
|
// viewHolder.showMatchPersonList.setVisibility(VISIBLE);
|
}
|
}
|
});
|
|
}
|
}.start();
|
|
}
|
}
|
});
|
ListView listView = listPopupWindow.getListView();
|
if (listView != null) {
|
listView.setBackground(null);
|
listView.setDivider(null);
|
listView.setDividerHeight(0);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public boolean performClick() {
|
boolean handle = super.performClick();
|
initView();
|
return handle;
|
}
|
HomeGridViewAdapter.AlarmListAdapter.ViewHolder viewHolder;
|
public void setViewHolder(HomeGridViewAdapter.AlarmListAdapter.ViewHolder viewHolder) {
|
this.viewHolder = viewHolder;
|
}
|
|
@Override
|
public void onDetachedFromWindow() {
|
super.onDetachedFromWindow();
|
}
|
|
}
|