OK, I was clued into the answer by the extremely knowledgeable Ian Lake.
My understanding is that the Action Bar's Spinner will respond to click events when the top-level items on the list (your individual list items) are allowed to have focus and do not otherwise respond to click events. However, if you are using ViewGroups as your list items, and you have child views which can take click events, unless you explicitly prevent it, they will steal focus, and your Spinner will never process the click events. Sometimes, this is exactly what you want: you might have some switches in your layout that you want to allow the user to toggle without collapsing the Spinner. However, if it's NOT what you want, then you have a couple of options:
You can put the attribute
android:descendantFocusability="blocksDescendants"
into the root element of your layout, to make sure that focus doesn't go to the child views of the layout; orYou can put the attribute
android:focusable="false"
to any of your child views which can be focusable.
If your child views at this point still have click handlers of their own, they will still respond to click events, and this will prevent the Spinner from collapsing. If this is not what you want, then you must remove the click handlers and make these views non-clickable.
Any errors in the foregoing discussion are mine alone and not Ian's.