/** * Obtain a view, either by pulling an existing view from the recycler or by getting a new one * from the adapter. If we are animating, make sure there is enough information in the view's * layout parameters to animate from the old to new positions. * * @param position Position in the spinner for the view to obtain * @return A view that has been added to the spinner */ private View makeAndAddView(int position) { View child; if (!mDataChanged) { child = mRecycler.get(position); if (child != null) { // Position the view setUpChild(child); return child; } } // Nothing found in the recycler -- ask the adapter for a view child = mAdapter.getView(position, null, this); // Position the view setUpChild(child); return child; }