Używam motywu appcompat dla mojej aplikacji. Musisz wiedzieć, jak mogę pokazać podkreślenie spinnera. Po prostu pokazuje kotwicę. Próbowałem ustawić podkreślenie za pomocą android: background, ale to sprawia, że kotwica znika.Spinner z Androidem z podkreśleniem appcompat
Odpowiedz
zaktualizować bibliotekę wsparcia i XML używać
proszę dodać ten styl do swojej Spinner
style="@style/Base.Widget.AppCompat.Spinner.Underlined"
To hacky (a nie idealny) sposób zmienić spinner i podkreślają kolor w AppCompat tematu. Główny punkt, że dostosowałem obrazy biblioteki wsparcia dla Androida i pliki xml, aby zmienić kolor.
1) na wsparcie pakiet biblioteki i skopiować 2 zdjęcia (lub pobrać mój zwyczaj od dołu tej wiadomości)
/your-app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.0/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png
i
/your-app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.0/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png
2) Wykonaj kopię tych obrazów
3) Zmień kolor abc_spinner_mtrl_am_alpha.9.png (uwaga: pozostaw czarne obramowanie w takim stanie, jest na 9 poprawek)
4) Zmiana koloru z drugiej linii dolnej z abc_textfield_default_mtrl_alpha.9.png (widać na załączonym obrazku poniżej) małej
5) Zapisz i przenoszenia plików do projektu kanału alfa
6) Tworzenie bottom_line_color.xml odkształcalne:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="-6dp" android:left="-6dp" android:right="-6dp">
<shape>
<stroke android:color="@color/brown" android:width="6dp"/>
</shape>
</item>
7) Tworzenie spinner_bottom_line.xml
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_control_inset_material"
android:insetTop="@dimen/abc_control_inset_material"
android:insetBottom="@dimen/abc_control_inset_material"
android:insetRight="@dimen/abc_control_inset_material">
<selector>
<item android:state_checked="false" android:state_pressed="false">
<layer-list>
<item android:drawable="@drawable/my_custom_abc_textfield_default_mtrl_alpha" />
<item android:drawable="@drawable/my_custom_abc_spinner_mtrl_am_alpha" />
</layer-list>
</item>
<item>
<layer-list>
<item android:drawable="@drawable/my_custom_abc_textfield_default_mtrl_alpha" />
<item android:drawable="@drawable/my_custom_abc_spinner_mtrl_am_alpha" />
</layer-list>
</item>
</selector>
</inset>
P.S. Nie mogłem osiągnąć takiego samego stylu wizualnego, jak domyślny spinner (zmiany wizualne pokazane poniżej). Jeśli zaczniesz używać tego niestandardowego motywu obrotowego, powinieneś go użyć we wszystkich projektach.
więc dodać do wartości/styles.xml
<style name="My.Spinner.Style" parent="Base.Widget.AppCompat.Spinner.Underlined">
<item name="android:background">@drawable/spinner_bottom_line</item>
</style>
i użyć go w aplikacji tak:
<Spinner
android:id="@+id/account_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/My.Spinner.Style"
/>
Ważne: Należy zmienić rozmiar tarczy i kanału alfa miejsce do różnych folderów. Możesz znaleźć rozmiar na tej samej ścieżce, jak pokazano powyżej. Istnieje kilka popularnych rozmiarach:
drawables-mdpi 20x26
drawables-hdpi 29x38
drawables-xhdpi 38x50
drawables-xxhdpi 74x98
Możesz wziąć moje niestandardowe obrazy stąd:
my_custom_abc_spinner_mtrl_am_alpha:
my_custom_abc_textfield_default_mtrl_alpha:
Przykładem Spinner jest (xxhdpi), linia to mdpi (ponieważ nie potrzebujemy różnych linii w różnych folderach do rysowania, więc możemy mieć tylko 1).
wizualna różnica (od android oknie podglądu studio xml) pokazany jest tutaj:
Pierwsza linia jest mój zwyczaj underline spinner, drugi jest domyślnym Base.Widget.AppCompat.Spinner.Underlined
moja przyjaciółka, twoja metoda może być poprawna, ale jeśli android sam zapewnia jedną linię, za pomocą której możesz to osiągnąć, dlaczego tak ciężko pracować? –
Nie znalazłem sposobu na zmianę koloru podkreślenia spinnera. Jeśli zmieniłem tło w style.xml pozycja spinner zniknęła. Więc to rozwiązanie pomaga mi zmienić kolor linii dolnej i pozostawić pozycję spinnera – Ragaisis
Ciekawe rozwiązanie. Zauważyłem, że łatwiej jest umieścić widok obrazu (z moją linią) poniżej mojego pokrętła. – Yar
w styles.xml
<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">@color/colorPrimary</item>
</style>
====================== ==
w układzie
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<Spinner
android:id="@+id/spinCountry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edit_text_bottom_border"
android:paddingBottom="10dp" />
</android.support.design.widget.TextInputLayout>
================================= ==============
plik edit_text_bottom_border.xml w rozciągliwej
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="1dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#535353" />
<!--android:color="#535353" />-->
</shape>
</item>
</layer-list>
- 1. Zmienne z podkreśleniem
- 2. Czy istnieje sposób użycia setOnClickListener z Androidem Spinner?
- 3. $ q obietnica z podkreśleniem _each
- 4. Przycisk rozwijania z Androidem
- 5. Monit z Androidem pod kołdrą
- 6. odzew na pozycji rozwijanych Spinner kolorowym tle (AppCompat-V7 V21)
- 7. Symulowanie pióra z podkreśleniem na płótnie delphi
- 8. Doctrine 2 Hydrator - pola z podkreśleniem
- 9. zatrzymać linki z podkreśleniem w przestrzeni?
- 10. Stylizacja AppCompat SearchView z AppCompat 22.1.0 nie działa
- 11. Stylizacja spinnera, appcompat, materiał
- 12. setOnItemClickListener nie działa z Spinner
- 13. Widget Spinner jQueryUI z nokautem
- 14. Korzystanie z parametrów wejściowych z elementem Spinner
- 15. Zmiana układu/konstrukcji układu z Androidem
- 16. Motyw nie został zastosowany przy użyciu biblioteki appcompat na niektórych urządzeniach z Androidem 4.X
- 17. Problem z Androidem ActionBar wysokościowym
- 18. Skomponuj aplikację/dodaj bibliotekę z Androidem Studio
- 19. Problem z SSL z Androidem
- 20. Wygeneruj APKLIB z kompatybilności-v7-appcompat
- 21. Nie można wyświetlić elementów z biblioteką AppCompat
- 22. Przyciski kolorowania w systemie Android z AppCompat
- 23. YouTubePlayer wraz z biblioteką AppCompat v7
- 24. przezroczysty pasek kontrolny z AppCompat-v7 21
- 25. Kadrowanie aparatu z Androidem
- 26. Animacja migotania z Androidem
- 27. Obraz kwadratowy z Androidem
- 28. Przyciski bezgraniczne z Androidem
- 29. Dotykowe wydarzenie z Androidem
- 30. Głowice bezel z Androidem
Jak pokolorować podkreślenia? – rohitsakala
Jakikolwiek sposób usunąć strzałkę w dół i czy jest podkreślony? jeśli ustawię jakieś tło, podkreślenie znika. –
Jakieś rozwiązania powyżej? Jeśli użyję tego stylu, moja strzałka zostanie zastąpiona przez domyślną. – AndroidGuy