studio - Cómo agregar una línea en la parte inferior de la ruleta como texto de edición en Android
ruleta de decisiones (6)
Hola, estoy haciendo una aplicación de demostración en la que estoy usando EditText
en la que aparece una línea en la parte inferior que está bien, pero no está en el caso de spinner.
¿Cómo es esto posible?
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" />
Acabo de enfrentar el mismo problema y después de investigar durante un tiempo la respuesta es bastante fácil:
<Spinner
...
style="@style/Widget.AppCompat.Spinner.Underlined"
... />
Dado que nadie ha publicado una respuesta real, aquí tienes:
<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>
Esa línea es lo que escribes tu entrada anterior. Un spinner no tiene esa línea porque no es un campo de entrada de texto. Si también quieres tener una línea debajo de la ruleta, podrías insertarla debajo fingiéndola así:
<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-->
Probablemente necesites jugar un poco con los márgenes. También observe que la línea negra solo está en Android 5.0, y que el diseño completo se verá muy diferente en Androids más antiguos. Si solo desea tener una línea negra en Android 5.0, debe hacer una copia del diseño e insertarla en un directorio llamado layout-v21
y tener la otra versión en el directorio de layout
predeterminado.
Si @style/Widget.AppCompat.Spinner.Underlined
no se encuentra o no funciona, se usa debajo del style
para girar hacia abajo. Subrayado
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
style="@android:style/Widget.Material.Spinner.Underlined"
android:layout_height="wrap_content"
/>
Esta funcionando
<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>
Happy Coding
<android.support.v7.widget.AppCompatSpinner
...
style="@style/Widget.AppCompat.Spinner.Underlined"
app:backgroundTint="YOUR_COLOR_HERE"
... />