Inspiriert von der Tagesauswahl in der integrierten Android Clock -App.
Hinweis: Ich arbeite nicht aktiv an neuen Funktionen für diese Bibliothek. Ich spreche nur kritische Fehler an. Vor diesem Hintergrund sind Beiträge für neue Funktionen mehr als willkommen und ich kann Pull -Anfragen überprüfen. Siehe Mitwirkende.md Wenn Sie an einem Beitrag interessiert sind.
| Normaler Gebrauch | Lokalisierte Nutzung | Dunkelmodus Verwendung |
|---|---|---|
![]() | ![]() | ![]() |
firstDayOfWeek manuell überschreibenFehlerbehebungen
3.6.1 verwendet wird, um das Gebäude zu scheitern, da das selectionMode -Attribut nicht ermittelt werden kann.Fehlerbehebungen
setSelectedDays ausgewählten Tagen ausgewählt würden.Konfigurationsverbesserungen
app:selectionMode einstellen. Laden Sie die neueste Version herunter, indem Sie Folgendes in build.gradle -Datei Ihres Projekts hinzufügen:
dependencies {
implementation ' ca.antonious:materialdaypicker:0.7.4 '
}Sie können die Ansicht einfach in Ihr vorhandenes XML fallen lassen:
< ca .antonious.materialdaypicker.MaterialDayPicker
android : id = " @+id/day_picker "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " />Sie können die aktuell ausgewählten Tage mit verwenden:
val selectedDays = materialDayPicker.selectedDays
// returns [MaterialDayPicker.Weekday.TUESDAY, MaterialDayPicker.Weekday.FRIDAY]Sie können die ausgewählten Tage festlegen, indem Sie:
val daysToSelect = listOf ( MaterialDayPicker . Weekday . TUESDAY , MaterialDayPicker . Weekday . FRIDAY )
materialDayPicker.setSelectedDays(daysToSelect)Wenn Sie nur einen Tag zulassen möchten, können Sie zu einem Zeitpunkt ausgewählt werden, den Sie tun können:
materialDayPicker.selectionMode = SingleSelectionMode .create() Dies kann auch über XML unter Verwendung des selectionMode -Attributs eingestellt werden:
< ca .antonious.materialdaypicker.MaterialDayPicker
...
app : selectionMode = " ca.antonious.materialdaypicker.SingleSelectionMode " />Sie können Tage mit den folgenden Methoden aktivieren/deaktivieren. Beachten Sie, wenn Sie einen Tag deaktivieren, an dem er ausgewählt ist, kann er nicht abgewählt werden:
materialDayPicker.enableDay( MaterialDayPicker . Weekday . Monday )
materialDayPicker.disableDay( MaterialDayPicker . Weekday . Monday )
materialDayPicker.setDayEnable( MaterialDayPicker . Weekday . Monday , isEnabled = false )Wenn Sie sich dann anhören möchten, wann immer die Tagesauswahl geändert wird, können Sie verwenden:
materialDayPicker.setDaySelectionChangedListener { selectedDays ->
// handle selection change
}Wenn Sie wissen müssen, wann ein bestimmter Tag ausgewählt/abgewählt ist, können Sie verwenden:
materialDayPicker.setDayPressedListener { weekday, isSelected ->
// handle weekday selection
}Sie können diese Farben überschreiben, um die Aussehen von Materialdaypicker zu ändern. Sie können diese Werte auch in Ihrem Night Color Resources -Verzeichnis aktualisieren, um zu aktualisieren, wie MateriDayPicker im Dunklen Modus aussieht:
< color name = " dayPressed " >@color/colorPrimaryDark</ color >
< color name = " daySelected " >@color/colorPrimary</ color >
< color name = " daySelectedTextColor " >@android:color/white</ color >
< color name = " dayDeselected " >#FAFAFA</ color >
< color name = " dayDeselectedTextColor " >@android:color/black</ color >
<!-- Customizing colors for disabled days -->
< color name = " daySelectedAndDisabled " >#43444F</ color >
< color name = " daySelectedAndDisabledTextColor " >@color/daySelectedTextColor</ color >
< color name = " dayDeselectedAndDisabled " >@color/dayDeselected</ color >
< color name = " dayDeselectedAndDisabledTextColor " >@android:color/darker_gray</ color >Wenn Sie das aktuelle Gebietsschema des Geräts nicht verwenden möchten, können Sie es überschreiben, indem Sie:
materialDayPicker.locale = Locale . ENGLISH // or any other localeWenn Sie den ersten Tag der Woche ausdrücklich angeben möchten:
materialDayPicker.firstDayOfWeek = MaterialDayPicker . Weekday . MONDAY // or any other day MIT License
Copyright (c) 2017 George Antonious
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.