Natknąłem się na to również podczas wyszukiwania, ale zastanawiałem się, czy Android zapewnia natywną metodę.
xsorifc28
1
To sprawia, że myślimy, że coś jest nie tak z Androidem. Istnieje kilka brakujących luk w API for Material Design. Innym przykładem jest Float Action Button.
motobói
Odpowiedzi:
4
Musisz dodać następujące elementy do pliku build.gradle modułu:
Wow, dzięki! Przejrzę je i dam znać, jak to idzie!
AdamMc331
2
Trzeci był tym, czego szukałem. Natknąłem się na TextInputLayout, ale nie mogłem znaleźć dobrego przykładu (prawdopodobnie wyszukując wszystkie niewłaściwe terminy). Dzięki!
AdamMc331
18
Bibliotekę obsługi Androida można zaimportować w gradle w zależnościach:
compile 'com.android.support:design:22.2.0'
Powinien być zawarty w GradlePlease! I jako przykład, aby go użyć:
Pojawia się błąd: (1) „Atrybut” kolor ”został już zdefiniowany„ na synchronizacji gradle, prawdopodobnie z powodu appcompat-v7. Nie mogę się tego pozbyć. Jakieś sugestie?
mdzeko
MaterialEditText nie zdefiniował atrybutu o nazwie „color”, więc gdzie indziej musi być źle.
rengwuxian
9
Zaimportuj biblioteki pomocy technicznej, w pliku build.gradle projektu dodaj następujące wiersze w zależnościach projektu:
Następnie wywołaj setHint na TextInputLayout zaraz po wywołaniu setContentView, ponieważ aby animować pływającą etykietę, wystarczy ustawić wskazówkę, używając metody setHint.
https://github.com/thebnich/FloatingHintEditText działa z appcompat-v7 v21.0.0, ale ponieważ wersja 21.0.0 nie obsługuje kolorów akcentujących z podklasami EditText, podkreślenie FloatingHintEditTextbędzie domyślną jednolitą czernią lub bielą. Również wyściółka nie jest zoptymalizowana pod kątem stylu Materiał EditText, więc może być konieczne jej dostosowanie.
Dziękuję Ci. Zgaduję, że Google również nie zapewniło interfejsu API do tworzenia ostrzeżeń o edycji tekstu w stylu materiału, na przykład google.com/design/spec/components/… Przepraszam za pytania amatorów, staram się dostosować do projektowania materiałów tak samo jak mogę, używając API / bibliotek Google i próbując dowiedzieć się wszystkiego, co zostało dostarczone w porównaniu z bibliotekami zewnętrznymi. Dzięki jeszcze raz!
Aby ułatwić korzystanie z InputTextLayout, stworzyłem tę bibliotekę, która skraca twój kod XML do mniej niż połowy, a także zapewnia możliwość ustawienia komunikatu o błędzie, a także komunikatu ze wskazówką i łatwego sposobu walidacje.
https://github.com/TeleClinic/SmartEditText
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/emailSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Email"app:setMandatoryErrorMsg="Mandatory field"app:setRegexErrorMsg="Wrong email format"app:setRegexType="EMAIL_VALIDATION"/><com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/passwordSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Password"app:setMandatoryErrorMsg="Mandatory field"app:setPasswordField="true"app:setRegexErrorMsg="Weak password"app:setRegexType="MEDIUM_PASSWORD_VALIDATION"/><com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/ageSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Age"app:setMandatory="false"app:setRegexErrorMsg="Is that really your age :D?"app:setRegexString=".*\\d.*"/>
Odpowiedzi:
Musisz dodać następujące elementy do pliku build.gradle modułu:
I użyj com.google.android.material.textfield.TextInputLayout w swoim kodzie XML:
źródło
Pływająca wskazówka EditText:
Dodaj poniżej zależność w gradle:
W układzie:
źródło
22.2.0
implementation 'com.google.android.material:material:1.0.0-rc01'
.Tak, od 29 maja 2015 r. Ta funkcja jest teraz dostępna w bibliotece Android Design Support Library
Ta biblioteka obejmuje obsługę
źródło
Bibliotekę obsługi Androida można zaimportować w gradle w zależnościach:
Powinien być zawarty w GradlePlease! I jako przykład, aby go użyć:
Przy okazji, edytor może nie rozumieć, że AutoCompleteTextView jest dozwolone w TextInputLayout.
źródło
Android nie zapewnia metody natywnej. Ani AppCompat.
Wypróbuj tę bibliotekę: https://github.com/rengwuxian/MaterialEditText
To może być to, czego chcesz.
źródło
Zaimportuj biblioteki pomocy technicznej, w pliku build.gradle projektu dodaj następujące wiersze w zależnościach projektu:
Użyj następującego TextInputLayout w układzie interfejsu użytkownika:
Następnie wywołaj setHint na TextInputLayout zaraz po wywołaniu setContentView, ponieważ aby animować pływającą etykietę, wystarczy ustawić wskazówkę, używając metody setHint.
źródło
setHint()
. Działa z podpowiedzią ustawionąEditText
w formacie XML układu.Sugestia @ andruboy dotycząca https://gist.github.com/chrisbanes/11247418 jest prawdopodobnie najlepszym rozwiązaniem.
https://github.com/thebnich/FloatingHintEditText działa z appcompat-v7 v21.0.0, ale ponieważ wersja 21.0.0 nie obsługuje kolorów akcentujących z podklasami
EditText
, podkreślenieFloatingHintEditText
będzie domyślną jednolitą czernią lub bielą. Również wyściółka nie jest zoptymalizowana pod kątem stylu MateriałEditText
, więc może być konieczne jej dostosowanie.źródło
Nie, nie ma. Spodziewałbym się tego w przyszłym wydaniu API, ale na razie utknęliśmy w EditText. Inną opcją jest ta biblioteka:
https://github.com/marvinlabs/android-floatinglabel-widgets
źródło
Aby ułatwić korzystanie z InputTextLayout, stworzyłem tę bibliotekę, która skraca twój kod XML do mniej niż połowy, a także zapewnia możliwość ustawienia komunikatu o błędzie, a także komunikatu ze wskazówką i łatwego sposobu walidacje. https://github.com/TeleClinic/SmartEditText
Po prostu dodaj
Następnie możesz zrobić coś takiego:
źródło
Spróbuj w ten sposób
aby uzyskać więcej informacji, kliknij tutaj
źródło
Skorzystaj z
TextInputLayout
udostępnionych przez Bibliotekę komponentów materiałów :źródło