It's easy to make a row in a ListView do something when it is clicked. But add something else in the row--such as a Button or other control--that has an OnClickListener, and suddenly nothing happens when the row is clicked.
Before you close this question as a duplicate, I am perfectly aware that there are a number of StackOverflow questions about that. They generally either recommend setting the Button android:focusable="false" or setting android:descendantFocusability="blocksDescendants" on the ViewGroup containing the row Views.
These work, but one problem: if you're navigating with the keyboard (tabbing or arrow keys), it skips right over the Button.
Is there a way to solve the issue and allow people to "click" either row or Button without having to actually tap the touchscreen?