Maui: [БпСцификация] TabView

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 18 июн. 2020  Β·  12ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: dotnet/maui

TabView

Π£ нас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Shell. Однако Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€: сСтка) ?, _ Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ? _. Π’ этих случаях Π½Π°ΠΌ ΠΏΠΎΠΊΠ° понадобится Custom Renderer ...

TabView - это способ отобраТСния Π½Π°Π±ΠΎΡ€Π° Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТимого. TabView ΠΏΠΎΠ»Π΅Π·Π΅Π½ для отобраТСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², давая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ практичСски всС.

tabview

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. TabView - это кроссплатформСнноС прСдставлСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вступаСт Π²ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° собствСнныС Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ своих ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², стилСй ΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… стилСй, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ выпуклая ΠΊΠ½ΠΎΠΏΠΊΠ°.

API

Π—Π°Ρ‚Π΅ΠΌ список со свойствами, событиями ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ состояниями TabView.

Π₯арактСристики

Бвойства TabView

| ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒ | Π’ΠΈΠΏ | ОписаниС |
| ---------- |: -------------: |: -------------: |
| TabItemsSource | IEnumerable | ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для создания элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΎΠΊ TabView. |
| TabViewItemDataTemplate | DataTemplate | шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставлСниС Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для создания Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| TabContentDataTemplate | DataTemplate | Π¨Π°Π±Π»ΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² прСдставлСнии Π²ΠΊΠ»Π°Π΄ΠΎΠΊ для создания содСрТимого элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΎΠΊ. |
| IsCyclical | Bool | Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ цикличСской Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌ. |
| IsLazy | Bool | Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ. |
| SelectedIndex | Int | ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 0. |
| TabStripPlacement | TabStripPlacement | Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ TabStrip (Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·Ρƒ). |
| TabStripBackground | ΠšΠΈΡΡ‚ΡŒ | Π€ΠΎΠ½ TabStrip. |
| TabIndicatorBrush | ΠšΠΈΡΡ‚ΡŒ | Π€ΠΎΠ½ TabIndicator. |
| TabIndicatorHeight | Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ | Высота TabIndicator. |
| TabIndicatorWidth | Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ | Π¨ΠΈΡ€ΠΈΠ½Π° TabIndicator. |
| TabIndicatorPlacement | TabIndicatorPlacement | |
| TabIndicatorView | ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ | Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ TabIndicator. |
| TabContentBackground | ΠšΠΈΡΡ‚ΡŒ | Π€ΠΎΠ½ содСрТимого Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| TabContentHeight | Π”Π²ΠΎΠΉΠ½ΠΎΠΉ | Высота содСрТимого Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| TabStripHeight | Π”Π²ΠΎΠΉΠ½ΠΎΠΉ | Высота TabStrip. |
| TabContentHeight | Π”Π²ΠΎΠΉΠ½ΠΎΠΉ | Высота содСрТимого Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| HasTabStripShadow | Bool | ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ эффСкт Ρ‚Π΅Π½ΠΈ TabStrip. |
| IsTabTransitionEnabled | Bool | Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ. |
| IsSwipeEnabled | Bool | Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ТСста смахивания. |

Бвойства TabViewItem

| ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒ | Π’ΠΈΠΏ | ОписаниС |
| ---------- |: -------------: |: -------------: |
| ВСкст | Π‘Ρ‚Ρ€ΠΎΠΊΠ° | ВСкст Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| TextColor | Π¦Π²Π΅Ρ‚ | Π¦Π²Π΅Ρ‚ тСкста Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| TextColorSelected | Π¦Π²Π΅Ρ‚ | Π¦Π²Π΅Ρ‚ тСкста Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| FontSize | FontSize | Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² тСкстС табуляции. |
| FontSizeSelected | FontSize | Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| FontFamily | Π‘Ρ‚Ρ€ΠΎΠΊΠ° | БСмСйство ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| FontFamilySelected | Π‘Ρ‚Ρ€ΠΎΠΊΠ° | БСмСйство ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| FontAttributes | FontAttributes | Атрибуты ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| FontAttributesSelected | FontAttributes | Атрибуты ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| Иконка | ImageSource | Π—Π½Π°Ρ‡ΠΎΠΊ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| IconSelected | ImageSource | ImageSource ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡ΠΎΠΊ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ | ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ | Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² качСствС содСрТимого. |
| BadgeText | Bool | ВСкст Π·Π½Π°Ρ‡ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| BadgeTextColor | Π¦Π²Π΅Ρ‚ | Π¦Π²Π΅Ρ‚ тСкста Π·Π½Π°Ρ‡ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| BadgeTextColorSelected | Π¦Π²Π΅Ρ‚ | Π¦Π²Π΅Ρ‚ тСкста Π·Π½Π°Ρ‡ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| BadgeBackgroundColor | Π¦Π²Π΅Ρ‚ | Π¦Π²Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| BadgeBackgroundColorSelected | Π¦Π²Π΅Ρ‚ | Π¦Π²Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. |
| IsSelected | Bool | логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, Π²Ρ‹Π±Ρ€Π°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅Ρ‚. |
| TapCommand | ICommand | Команда, которая выполняСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ. |
| TapCommandParameter | ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ касания. |

Бобытия

TabView Бобытия

| Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ | ОписаниС |
| ---------- |: -------------: |
| SelectionChanged | Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. |
| ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅Ρ‚ΡΡ | Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ пСрСлистывании Π²ΠΊΠ»Π°Π΄ΠΎΠΊ. |

TabViewItem Бобытия

| Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ | ОписаниС |
| ---------- |: -------------: |
| TabTapped | Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ. |

VisualStates

ДиспСтчСр Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… состояний (VSM) прСдоставляСт структурированный способ внСсСния Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΈΠ· ΠΊΠΎΠ΄Π°.
VSM Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… состояний. TabView ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… прСдставлСний Π² зависимости ΠΎΡ‚ своСго основного состояния.

TabView ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… VisualState :

  • CurrentTabVisualState
  • NextTabVisualState
  • PreviousTabVisualState
  • DefaultTabVisualState

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠ΅ сцСнарии.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

<TabView 
    TabStripPlacement="Bottom"
    TabStripBackgroundColor="Blue">
    <TabViewItem
        Icon="triangle.png"
        Text="Tab 1">
        <Grid 
            BackgroundColor="Gray">
            <Label
                HorizontalOptions="Center"
                VerticalOptions="Center"
                Text="TabContent1" />
        </Grid>
    </TabViewItem>
    <TabViewItem
        Icon="circle.png"
        Text="Tab 2">
        <Grid>
            <Label    
                HorizontalOptions="Center"
                VerticalOptions="Center"
                Text="TabContent2" />
        </Grid>
    </TabViewItem>
</TabView>

basic-tabs

TabItemsSource

ИспользованиС TabItemsSource (динамичСскиС Π²ΠΊΠ»Π°Π΄ΠΊΠΈ):

<TabView
    TabItemsSource="{Binding Monkeys}"
    TabViewItemDataTemplate="{StaticResource TabViewItemTemplate}"
    TabContentDataTemplate="{StaticResource TabContentTemplate}" />

tabitemssource

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ:

<ControlTemplate
    x:Key="TabItemTemplate">
    <Grid>
    ...
    </Grid>
</ControlTemplate>

<TabView>
    <TabViewItem
        Text="Tab 1"
        ControlTemplate="{StaticResource TabItemTemplate}">
    </TabViewItem>
</TabView>

custom-tabs

ЦикличСскиС Π²ΠΊΠ»Π°Π΄ΠΊΠΈ

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ цикличСски ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ?

<TabView
    IsCyclical="True">
    ...
</TabView>

iscyclical

ЛСнивая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

ЛСнивая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ:

<TabView
    IsLazy="True">
    ...
</TabView>

lazy-tabs

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ анимация TabViewItem

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Xamarin.Forms для настройки ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ, Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΈ появлСнии ΠΈΠ»ΠΈ исчСзновСнии ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ ΠΏΡ€ΠΈ появлСнии ΠΈΠ»ΠΈ исчСзновСнии.

<TabView>
    <TabView.TabTransition>
        <local:CustomTabTransition />
    </TabView.TabTransition>
    <TabViewItem
        Text="Tab 1">      
            <TabViewItem.TabAnimation>
                <local:CustomTabViewItemAnimation />
            </TabViewItem.TabAnimation>
        <Grid 
            BackgroundColor="LawnGreen">
            <Label
                HorizontalOptions="Center"
                VerticalOptions="Center"
                Text="TabContent1" />
        </Grid>
    </TabViewItem>
    ...
</TabView>

custom-tabs-animation

ИспользованиС VisualStates

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ состояния для настройки Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ Ρ‚. Π”.

<Grid>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="TabViewStates">
            <VisualState x:Name="CurrentTab">
                <VisualState.Setters>
                    <Setter Property="Opacity" Value="1" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="PreviousTab">
                <VisualState.Setters>
                    <Setter Property="Opacity" Value="0.7" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="NextTab">
                <VisualState.Setters>
                    <Setter Property="Opacity" Value="0.7" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="DefaultTab">
                <VisualState.Setters>
                    <Setter Property="Opacity" Value="0.9" />
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Label Text="{Binding Index}" HorizontalOptions="Center" VerticalOptions="End" />
</Grid>

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ C

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ XAML ΠΈΠ»ΠΈ C # для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π² Xamarin.Forms. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ C #.

var tabView = new Tabs
{
    TabStripPlacement = TabStripPlacement.Bottom,
    TabStripBackgroundColor = Color.Blue,
    TabStripHeight = 60,
    TabIndicatorColor = Color.Yellow,
    TabContentBackgroundColor = Color.Yellow
};

var tabViewItem1 = new TabViewItem
{
    Icon = "triangle.png",
    Text = "Tab 1",
    TextColor = Color.White,
    TextColorSelected = Color.Yellow,
};

var tabViewItem1Content = new Grid
{
    BackgroundColor = Color.Gray
};

var label1 = new Label
{
    HorizontalOptions = LayoutOptions.Center,
    VerticalOptions = LayoutOptions.Center,
    Text = "TabContent1"
};

tabViewItem1Content.Children.Add(label1);

tabViewItem1.Content = tabViewItem1Content;

tabView.TabItems.Add(tabViewItem1);

var tabViewItem2 = new TabViewItem
{
    Icon = "circle.png",
    Text = "Tab 2",
    TextColor = Color.White,
    TextColorSelected = Color.Yellow
};

var tabViewItem2Content = new Grid
{
    BackgroundColor = Color.OrangeRed
};

var label2 = new Label
{
    HorizontalOptions = LayoutOptions.Center,
    VerticalOptions = LayoutOptions.Center,
    Text = "TabContent2"
};

tabViewItem2Content.Children.Add(label2);

tabViewItem2.Content = tabViewItem2Content;

tabView.TabItems.Add(tabViewItem2);

ИспользованиС стилСй

МоТно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ содСрТимого Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, полосы Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, элСмСнта Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ Ρ‚. Π”. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стилСй XAML ΠΈΠ»ΠΈ CSS .

ИспользованиС XAML:

<Style
    x:Key="TabItemStyle"
    TargetType="TabViewItem">
    <Setter
        Property="FontSize"
        Value="12" />
    <Setter
        Property="TextColor"
        Value="#979797" />
</Style>

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ CSS:

.customTabItem {
    font-size: medium;
    text-color: red;
}

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ слоТности: срСдний

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

На основС https://github.com/xamarin/Xamarin.Forms/issues/10773

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

@irongut , спасибо Π·Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ. Π”ΡƒΠΌΠ°ΡŽ, это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½. НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ BadgeText.

Если ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΎ структурС, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ трСбования, ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ String ΠΈΠ»ΠΈ ImageSource. Π’ этом случаС ΠΌΡ‹ вскорС столкнСмся с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ: Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ³ΠΎΠ» Π·Π½Π°Ρ‡ΠΊΠ° Π·Π°ΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹ΠΌ, Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ большС, МСньшС, ВСнь, Π‘Π»Π΅Π²Π° ΠΎΡ‚ Π·Π½Π°Ρ‡ΠΊΠ°, Π’Π²Π΅Ρ€Ρ…, Π’Π½ΠΈΠ·, Π’ΠΏΡ€Π°Π²ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄ Π·Π½Π°Ρ‡ΠΊΠΎΠΌ, Π·Π° Π·Π½Π°Ρ‡ΠΊΠΎΠΌ, Анимированный ... ΠΈ Ρ‚. Π΄. И люди Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ смогут Π»Π΅Π³ΠΊΠΎ это Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. ΠŸΠΈΡˆΡƒ это, я Π² настоящСС врСмя дСлаю Π·Π½Π°Ρ‡ΠΎΠΊ увСдомлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΊΡ€ΡƒΠ³ оси X, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ осядСт. Π²ΠΈΠ΄ΠΈΡ‚Π΅, насколько странной ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ настройка?

ВсС 12 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

МоТСм Π»ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† C # Π² MVU?

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариСв использования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ΅Π³ΠΎ), Ссли Π±Ρ‹ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ TabView Π±Ρ‹Π»ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹, Ссли дисплСй Π±Ρ‹Π» достаточно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ, Π²ΠΊΠ»Π°Π΄ΠΊΠΈ `` Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ '', Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈ содСрТимоС всСх Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΏΠΎ экрану. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΉ Β«Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°ΠΌΠΈ.

На Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π² ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ прСдставлСниС с Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ΄Π½Π° панСль отобраТаСтся Π½Π° экранС, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ доступны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ТСста Β«ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒΒ»; Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ Π² Π°Π»ΡŒΠ±ΠΎΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ (ΠΈΠ»ΠΈ Ссли Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с достаточно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ экраном) Π½Π° экранС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ всС ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, рядом Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΏΠΎΠΏΠ΅Ρ€Π΅ΠΊ экрана.

Π—Π½Π°Ρ‡ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ View вмСсто ImageSource, поТалуйста. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ увСдомлСния (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π·Π½Π°Ρ‡ΠΊΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ)

Π—Π½Π°Ρ‡ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ View вмСсто ImageSource, поТалуйста. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ увСдомлСния (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π·Π½Π°Ρ‡ΠΊΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ)

@MhAllan Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств TabViewItem BadgeText, BadgeTextColor, BadgeTextColorSelected, BadgeBackgroundColor ΠΈ BadgeBackgroundColorSelected.

Π― Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π² BadgeText ΡƒΠΊΠ°Π·Π°Π½ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ это Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ String, Π° Π½Π΅ Bool.

@irongut , спасибо Π·Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ. Π”ΡƒΠΌΠ°ΡŽ, это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½. НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ BadgeText.

Если ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΎ структурС, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ трСбования, ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ String ΠΈΠ»ΠΈ ImageSource. Π’ этом случаС ΠΌΡ‹ вскорС столкнСмся с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ: Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ³ΠΎΠ» Π·Π½Π°Ρ‡ΠΊΠ° Π·Π°ΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹ΠΌ, Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ большС, МСньшС, ВСнь, Π‘Π»Π΅Π²Π° ΠΎΡ‚ Π·Π½Π°Ρ‡ΠΊΠ°, Π’Π²Π΅Ρ€Ρ…, Π’Π½ΠΈΠ·, Π’ΠΏΡ€Π°Π²ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄ Π·Π½Π°Ρ‡ΠΊΠΎΠΌ, Π·Π° Π·Π½Π°Ρ‡ΠΊΠΎΠΌ, Анимированный ... ΠΈ Ρ‚. Π΄. И люди Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ смогут Π»Π΅Π³ΠΊΠΎ это Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. ΠŸΠΈΡˆΡƒ это, я Π² настоящСС врСмя дСлаю Π·Π½Π°Ρ‡ΠΎΠΊ увСдомлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΊΡ€ΡƒΠ³ оси X, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ осядСт. Π²ΠΈΠ΄ΠΈΡ‚Π΅, насколько странной ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ настройка?

SfTabview ΠΎΡ‚ @MhAllan Syncfusion - Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌ.

Бпасибо, Π½ΠΎ ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ пиявки, которая продаСтся Π·Π° тысячи Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы, языки программирования ΠΈ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ бСсплатны.

Π― Π½Π΅ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Syncfusion. я просто Ρ…ΠΎΡ‚Π΅Π» ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ это сдСлали. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ бСсплатныС услуги для ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π½ΠΎ платят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ компаниям с Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΎΠ½ΠΈ Π½Π° 1-2 шага ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°ΡŽΡ‚ сам Xamarin. ΠΌΡ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ здСсь ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Collection / ListView мСсяцами, Π³ΠΎΠ΄Π°ΠΌΠΈ.

Π― согласСн с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ TabViewItem Π² Ρ†Π΅Π»ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ просто ContentView, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ любоС ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ прСдставлСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. ВСкущая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ нас Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΈΡ… прСдставляСтС, Π° Π½Π΅ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ «простоС Π² использовании» прСдставлСниС Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс SimpleTabItemView , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ люди ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС прСдставлСния для своих элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, позволяя Π½Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ наши собствСнный внСшний Π²ΠΈΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΡˆΠΈΡ… собствСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… прСдставлСний.

Π― согласСн с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ TabViewItem Π² Ρ†Π΅Π»ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ просто ContentView, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ любоС ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ прСдставлСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. ВСкущая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ нас Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΈΡ… прСдставляСтС, Π° Π½Π΅ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ «простоС Π² использовании» прСдставлСниС Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс SimpleTabItemView , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ люди ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС прСдставлСния для своих элСмСнтов Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, позволяя Π½Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ наши собствСнный внСшний Π²ΠΈΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΡˆΠΈΡ… собствСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… прСдставлСний.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния.

Π£ вас всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для вашСй простой Π² использовании Β«ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹Β». НСт ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ вСсь Π²ΠΈΠ΄.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Xamarin Community Toolkit.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ