Skip to content

Commit

Permalink
Show item and popup for a single item. Fixes #68
Browse files Browse the repository at this point in the history
  • Loading branch information
Jared Rummler committed Dec 7, 2017
1 parent eedef38 commit 8582022
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ private void init(Context context, AttributeSet attrs) {
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position >= selectedIndex && position < adapter.getCount()) {
if (position >= selectedIndex && position < adapter.getCount() && adapter.getItems().size() != 1) {
position++;
}
selectedIndex = position;
Expand Down Expand Up @@ -398,7 +398,7 @@ private void setAdapterInternal(@NonNull MaterialSpinnerBaseAdapter adapter) {
if (selectedIndex >= adapter.getCount()) {
selectedIndex = 0;
}
if (adapter.getCount() > 0) {
if (adapter.getItems().size() > 0) {
setText(adapter.get(selectedIndex).toString());
} else {
setText("");
Expand Down Expand Up @@ -470,13 +470,16 @@ private int calculatePopupWindowHeight() {
if (adapter == null) {
return WindowManager.LayoutParams.WRAP_CONTENT;
}
float listViewHeight = adapter.getCount() * getResources().getDimension(R.dimen.ms__item_height);
float itemHeight = getResources().getDimension(R.dimen.ms__item_height);
float listViewHeight = adapter.getCount() * itemHeight;
if (popupWindowMaxHeight > 0 && listViewHeight > popupWindowMaxHeight) {
return popupWindowMaxHeight;
} else if (popupWindowHeight != WindowManager.LayoutParams.MATCH_PARENT
&& popupWindowHeight != WindowManager.LayoutParams.WRAP_CONTENT
&& popupWindowHeight <= listViewHeight) {
return popupWindowHeight;
} else if (listViewHeight == 0 && adapter.getItems().size() == 1) {
return (int) itemHeight;
}
return (int) listViewHeight;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
package com.jaredrummler.materialspinner;

import android.content.Context;

import java.util.List;

public class MaterialSpinnerAdapter<T> extends MaterialSpinnerBaseAdapter {
Expand All @@ -31,11 +30,13 @@ public MaterialSpinnerAdapter(Context context, List<T> items) {
}

@Override public int getCount() {
return items.size() - 1;
int size = items.size();
if (size == 1) return size;
return size - 1;
}

@Override public T getItem(int position) {
if (position >= getSelectedIndex()) {
if (position >= getSelectedIndex() && items.size() != 1) {
return items.get(position + 1);
} else {
return items.get(position);
Expand All @@ -49,5 +50,4 @@ public MaterialSpinnerAdapter(Context context, List<T> items) {
@Override public List<T> getItems() {
return items;
}

}

0 comments on commit 8582022

Please sign in to comment.