西宁网站开发多少钱,256m内存 wordpress,做物流网站费用多少,什么网站做电脑系统好Spinner只提供展开的监听#xff0c;并未提供收起的监听
有时候需要监听Spinner列表的收起#xff0c;比如根据展开收起的状态#xff0c;改变右边显示的arrow图标的方向
我们可以通过自定义Spinner来监听列表的展开和收起
自定义Spinner
public class CustomSpinner ex…Spinner只提供展开的监听并未提供收起的监听
有时候需要监听Spinner列表的收起比如根据展开收起的状态改变右边显示的arrow图标的方向
我们可以通过自定义Spinner来监听列表的展开和收起
自定义Spinner
public class CustomSpinner extends Spinner {private OnSpinnerEventsListener mListener;private boolean mOpenInitiated false;public CustomSpinner(Context context, AttributeSet attrs, int defStyleAttr, int mode) {super(context, attrs, defStyleAttr, mode);}public CustomSpinner(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public CustomSpinner(Context context, AttributeSet attrs) {super(context, attrs);}public CustomSpinner(Context context, int mode) {super(context, mode);}public CustomSpinner(Context context) {super(context);}public interface OnSpinnerEventsListener {void onSpinnerOpened();void onSpinnerClosed();}public void setSpinnerEventsListener(OnSpinnerEventsListener onSpinnerEventsListener) {mListener onSpinnerEventsListener;}Overridepublic boolean performClick() {mOpenInitiated true;if (mListener ! null) {mListener.onSpinnerOpened();}return super.performClick();}public void performClosedEvent() {mOpenInitiated false;if (mListener ! null) {mListener.onSpinnerClosed();}}public boolean hasBeenOpened() {return mOpenInitiated;}Overridepublic void onWindowFocusChanged(boolean hasWindowFocus) {super.onWindowFocusChanged(hasWindowFocus);if (hasBeenOpened() hasWindowFocus) {performClosedEvent();}}
}
使用
customSpinner.setSpinnerEventsListener(new CustomSpinner.OnSpinnerEventsListener() {Overridepublic void onSpinnerOpened() {// 展开}Overridepublic void onSpinnerClosed() {// 收起}
});