Подтвердить что ты не робот

Как добавить строку внизу спиннера, как edittext в android

Здравствуйте, я делаю демо-приложение, в котором я использую EditText, в котором внизу отображается строка, но это не в случае spinner.

Как это можно сделать?

layout.xml

<EditText
    android:id="@+id/twitterEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/twitter_account"
    android:inputType="textWebEmailAddress" />


<Spinner
    android:id="@+id/countrySpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/country" />

<Spinner
    android:id="@+id/stateSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/state" />

<Spinner
    android:id="@+id/citySpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/city" />

enter image description here

4b9b3361

Ответ 1

Я столкнулся с одной и той же проблемой, и после исследования какое-то время ответ довольно прост:

    <Spinner
        ...            
        style="@style/Widget.AppCompat.Spinner.Underlined"
        ... />

Ответ 2

<android.support.v7.widget.AppCompatSpinner
        ...            
        style="@style/Widget.AppCompat.Spinner.Underlined"
        app:backgroundTint="YOUR_COLOR_HERE"
        ... />

Ответ 3

Эта строка - это то, что вы пишете выше. Spinner не имеет этой строки, потому что это не текстовое поле ввода. Если вы хотите иметь линию под спиннером, вы можете вставить ее ниже, притворяя ее так:

<Spinner
    android:id="@+id/firstSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/firstHint" />

<!-- Separator view -->

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/black"/>

<Spinner
    android:id="@+id/secondSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/secondHint" />

<!-- Insert separator view again-->

Вероятно, вам нужно немного поиграть с полями. Также обратите внимание, что черная линия находится только в Android 5.0, и весь макет будет сильно отличаться от старых андроидов. Если вы хотите только черную линию на Android 5.0, вам нужно сделать копию макета и вставить ее в каталог с именем layout-v21 и иметь другую версию в каталоге layout по умолчанию.

Ответ 4

Поскольку никто не опубликовал фактический ответ, здесь вы идете:

<item android:bottom="1dp"
    android:left="-2dp"
    android:right="-2dp"
    android:top="-2dp">
    <shape android:shape="rectangle" >
        <stroke
            android:width="0.5dp"
            android:color="@android:color/black" />
    </shape>
</item>

Ответ 5

Работает

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:spinnerStyle">@style/holoSpinner</item>
</style>

<style name="holoSpinner" parent="Widget.AppCompat.Spinner.Underlined">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">#3F51B5</item>
</style>

Счастливое кодирование

Ответ 6

Если @style/Widget.AppCompat.Spinner.Underlined не найден или нет Работа, используемая ниже style, для счетчика внизу. Подчеркнуто

             <Spinner
                    android:id="@+id/spinner"
                    android:layout_width="wrap_content"
                    style="@android:style/Widget.Material.Spinner.Underlined"
                    android:layout_height="wrap_content"
                    />