在Android中,在Material Design组件中使用“暴露的下拉菜单”时,AutoCompleteTextView不会居中

在新发布的材料设计组件中,没有微调器组件。这就是为什么我要使用Exposed Dropdown Menus来实现类似Spinner之类的原因。我面临的问题是AutoCompleteTextView与endIconDrawable相比居中对齐。我的代码如下所示

在Android中,在Material Design组件中使用“暴露的下拉菜单”时,AutoCompleteTextView不会居中

activity.main.xml

<com.google.android.material.textfield.TextInputLayout
        style="@style/OutLinedEditTextStyle.Spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Select Country"
        android:layout_margin="@dimen/_10sdp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.578"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/materialToolbar"
        app:layout_constraintVertical_bias="0.0">

        <AutoCompleteTextView
            android:id="@+id/filled_exposed_dropdown"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:completionThreshold="1"
            android:dropDownVerticalOffset="@dimen/_5sdp"/>

    </com.google.android.material.textfield.TextInputLayout>

style.xml

<resources xmlns:tools="http://schemas.android.com/tools">
    <style name="OutLinedEditTextStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>

        <item name="boxBackgroundmode">outline</item>
        <item name="boxBackgroundColor">@color/colorWindowBackground</item>

        <item name="boxStrokeColor">@color/colorTextPrimary</item>
        <item name="boxStrokeErrorColor">@color/red</item>
        <item name="boxStrokeWidth">@dimen/_2sdp</item>
        <item name="boxStrokeWidthFocused">@dimen/_2sdp</item>

        <item name="errorTextColor">@color/red</item>
        <item name="errorEnabled">true</item>

        <item name="hintEnabled">true</item>
        <item name="hintTextColor">@color/colorTextPrimary</item>
        <item name="android:textColorHint">@color/colorTextSecondary</item>

    </style>


    <style name="OutLinedEditTextStyle.Spinner">
        <item name="materialThemeOverlay">@style/ThemeOverlay.MaterialComponents.AutoCompleteTextView.FilledBox</item>
        <item name="endIconmode">custom</item>
        <item name="endIconDrawable">@drawable/ic_download</item>
        <item name="endIconContentDescription">Drop down</item>
    </style>

</resources>
dwbo00 回答:在Android中,在Material Design组件中使用“暴露的下拉菜单”时,AutoCompleteTextView不会居中

最后,我可以解决问题。问题是,我继承了下拉菜单的错误父类。

<style name="SpinnerStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>

        <item name="boxBackgroundMode">outline</item>
        <item name="boxBackgroundColor">@color/colorWindowBackground</item>

        <item name="boxStrokeColor">@color/colorTextPrimary</item>
        <item name="boxStrokeErrorColor">@color/red</item>
        <item name="boxStrokeWidth">@dimen/_2sdp</item>
        <item name="boxStrokeWidthFocused">@dimen/_2sdp</item>

        <item name="errorTextColor">@color/red</item>
        <item name="errorEnabled">true</item>

        <item name="hintEnabled">true</item>
        <item name="hintTextColor">@color/colorTextPrimary</item>
        <item name="android:textColorHint">@color/colorTextSecondary</item>

        <item name="endIconMode">clear_text</item>

    </style>
本文链接:https://www.f2er.com/2672280.html

大家都在问