如何为微调器设置动画,使其随选项扩展

How to animate spinner so it expands with its options

目前我有一个微调器,正如预期的那样,单击时会弹出列表,我可以在其中选择项目。我需要对其进行动画处理,以便在单击时,它的视图会向下扩展,并且会在那里显示其他选项而不会弹出任何内容。 我的搜索得出的结论是 hard/not 可以为微调器设置动画,因此我尝试制作带有边距的列表视图并在自定义动画中降低该边距,但这压缩了该列表。

我当前的旋转器代码:

MainActivity

adapter = new ProfileChoiceSpinnerAdapter(this, items, profiles);
loginBinding.profileNameSpinner.setAdapter(adapter);
public class ProfileChoiceSpinnerAdapter extends ArrayAdapter<String> {

    private Context ctx;
    private List<String> contentArray;
    private List<ExtendedProfile> profilesWithAuthNumber;

    public ProfileChoiceSpinnerAdapter(Context context, List<String> contentArray, List<ExtendedProfile> profilesWithAuthNumber) {
        super(context, R.layout.profile_choice_spinner_values_layout, R.id.spinner_profile_name, contentArray);
        this.ctx = context;
        this.contentArray = contentArray;
        this.profilesWithAuthNumber = profilesWithAuthNumber;
    }

    @Override
    public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
        convertView = getView(position, convertView, parent);
        ImageView spinnerDropdownIcon = convertView.findViewById(R.id.spinner_dropdown_icon);
        if(position != 0)
            spinnerDropdownIcon.setVisibility(View.GONE);
        return convertView;
    }

    @NonNull
    @Override
    public View getView(int position, View convertView, @NonNull ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(ctx);
            convertView = inflater.inflate(R.layout.profile_choice_spinner_values_layout, null);
        }

       // populating single element ...

        return convertView;
    }

main_activity

...
                        <Spinner
                        android:id="@+id/profile_name_spinner"
                        android:layout_width="@dimen/_290sdp"
                        android:layout_height="67dp"
                        android:layout_marginTop="20dp"
                        android:elevation="4dp"
                        android:background="@drawable/button_shape_white"
                        android:popupBackground="@drawable/button_shape_white"
                        app:layout_constraintLeft_toLeftOf="parent"
                        app:layout_constraintRight_toRightOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />
...

有什么想法或解决方案吗?如果我的描述不够清楚,请告诉我

我最终嵌套了 Listview 而不是微调器,将其设置为不可滚动,并在单击时动画改变了它的高度。当单击列表顶部的其他元素时,我将其移动到第一个位置并将高度折叠到一个元素高度