R, 3030 29 bytes
Or **R>=4.1, 2322 bytes by replacing the word function
with a \
.
Edit: -1 byte thanks to @Giuseppe.
function(v)sum(v%%2)%in%c(0,/2)%in%0:1
TheAlmost straightforward approach.
Less straightforward, but used by many other answers, approach results in the same byte-count:
function(v)abs(sum(v%%2)-1)==1^2==1