Fix for Spinner.getBaseline returning wrong value on Android 5.1 (maybe 5.0+) in some cases
public class SpinnerWithBaseline extends Spinner {
public SpinnerWithBaseline(Context context, AttributeSet attr) {
super(context, attr);
}
@Override
public int getBaseline() {
final int children = getChildCount();
int childBaseline = 0;
if (children > 0) {
View child = getChildAt(0);
if (child != null) {
childBaseline = child.getBaseline();
if (childBaseline >= 0) {
final Drawable dr = getBackground();
if (dr != null) {
final Rect rect = new Rect();
dr.getPadding(rect);
childBaseline += rect.top;
}
return childBaseline;
}
}
}
final int superBaseline = super.getBaseline();
return superBaseline;
}
}