У меня проблема с использованием счетчика. Я добавил его в actionBar как меню. Выбранный элемент имеет размер, как у самого большого элемента:
Большой выбранный элемент:
Выбранный маленький элемент:
Как удалить пробел между "It.2" и "стрелкой"?
actionbar_spinner_menu. xml:
<menu>
<item
android:id="@+id/spinner"
android:title="actionbar_spinner"
app:actionViewClass="android.widget.Spinner"
app:showAsAction="always">
</item>
</menu>
onCreateOptionsMenu в MainActivity:
getMenuInflater().inflate(R.menu.actionbar_spinner_menu, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) item.getActionView();
spinner.setPopupBackgroundResource(R.color.white);
List<String> list = new ArrayList<>();
list.add("Very big item 1");
list.add("It. 2");
CategoryAdapter categoryAdapter = new CategoryAdapter(this, R.layout.spinner_menu, list);
spinner.setAdapter(categoryAdapter);
return true;
CategoryAdapter:
public class CategoryAdapter extends ArrayAdapter<String> {
private List<String> listOfCategories;
public CategoryAdapter(Context context, int resource, List<String> listOfCategories){
super(context, resource, listOfCategories);
this.listOfCategories = listOfCategories;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
return super.getView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View item = convertView;
if (item == null) {
item = LayoutInflater.from(parent.getContext())
.inflate(R.layout.spinner_item, parent, false);
}
String category = listOfCategories.get(position);
if (category != null){
TextView tvCategory = item.findViewById(R.id.tv_spinner_category);
tvCategory.setText(category);
}
return item;
}
}
spinner_item. xml
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tv_spinner_category"
android:textColor="@color/action_bar"
android:background="@color/white"
android:textSize="@dimen/spinner_text_size"
android:textStyle="bold"
android:paddingTop="10dp"
android:paddingBottom="5dp"
android:paddingStart="7dp"
android:paddingEnd="7dp"
android:textAlignment="center"/>
</LinearLayout>
spinner_menu. xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/action_bar"
style="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
android:textColor="@color/white"
android:textIsSelectable="false"/>