ã·ã§ã«ã䜿çšããŠã¿ããäœæã§ããŸãã ãã ããç¹å®ã®ã»ã¯ã·ã§ã³å ã«ãã¹ããããã¿ããå¿ èŠãªå Žåã¯ã©ããªããŸããïŒäŸïŒã°ãªããïŒã_åã¿ããå®å šã«ã«ã¹ã¿ãã€ãºãããå Žåã¯ã©ããªããŸããïŒ_ã ãã®ãããªå ŽåããããŸã§ã®ãšããã«ã¹ã¿ã ã¬ã³ãã©ãŒãå¿ èŠã«ãªããŸã...
TabViewã¯ãäžé£ã®ã¿ããšããããã®ã³ã³ãã³ãã衚瀺ããæ¹æ³ã§ãã TabViewã¯ããŠãŒã¶ãŒã«ã»ãšãã©ãã¹ãŠãã«ã¹ã¿ãã€ãºããæ©èœãæäŸããªãããè€æ°ã®ã³ã³ãã³ãã衚瀺ããã®ã«åœ¹ç«ã¡ãŸãã
æ³šïŒ TabViewã¯ãã¬ã€ã¢ãŠãã䜿çšããé 眮ãã¹ã¿ã€ã«èšå®ãäžãããããã¿ã³ã®ãããªäžåäžãªã¹ã¿ã€ã«èšå®ãªã©ããã€ãã£ãã¿ããå¶éã«éãããšãã«åŒãç¶ãã¯ãã¹ãã©ãããã©ãŒã ãã¥ãŒã§ãã
次ã«ãTabViewã®ããããã£ãã€ãã³ããããã³èŠèŠçç¶æ ã®ãªã¹ãã
| ããããã£| ã¿ã€ã| 説æ|
| ---------- |ïŒ-------------ïŒ|ïŒ-------------ïŒ|
| TabItemsSource | IEnumerable | TabViewã®ã¿ãã¢ã€ãã ãçæããããã«äœ¿çšãããã³ã¬ã¯ã·ã§ã³ã |
| TabViewItemDataTemplate | DataTemplate | ã¿ããã¥ãŒãã¿ãã¢ã€ãã ã®ããããŒãçæããããã«äœ¿çšãããã³ãã¬ãŒãã |
| TabContentDataTemplate | DataTemplate | ã¿ããã¥ãŒãã¿ãã¢ã€ãã ã®ã³ã³ãã³ããçæããããã«äœ¿çšãããã³ãã¬ãŒãã |
| IsCyclical | ããŒã«| åšæçãªã¿ãããã²ãŒã·ã§ã³ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
| IsLazy | ããŒã«| ã¬ã€ãžãŒã¿ãã®èªã¿èŸŒã¿ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
| SelectedIndex | Int | çŸåšéžæãããŠããã¿ããååŸãŸãã¯èšå®ããŸãã ããã©ã«ãã¯0ã§ãã
| TabStripPlacement | TabStripPlacement | TabStripã®é
眮ïŒäžãŸãã¯äžïŒã |
| TabStripBackground | ãã©ã·| TabStripã®èæ¯ã |
| TabIndicatorBrush | ãã©ã·| TabIndicatorã®èæ¯ã |
| TabIndicatorHeight | ããã«| TabIndicatorã®é«ãã |
| TabIndicatorWidth | ããã«| TabIndicatorã®å¹
ã |
| TabIndicatorPlacement | TabIndicatorPlacement | |
| TabIndicatorView | 衚瀺| TabIndicatorã®ã³ã³ãã³ãã |
| TabContentBackground | ãã©ã·| ã¿ãã³ã³ãã³ãã®èæ¯ã |
| TabContentHeight | ããã«| ã¿ãã³ã³ãã³ãã®é«ãã |
| TabStripHeight | ããã«| TabStripã®é«ãã |
| TabContentHeight | ããã«| ã¿ãã³ã³ãã³ãã®é«ãã |
| HasTabStripShadow | ããŒã«| TabStripã·ã£ããŠå¹æã衚瀺ãŸãã¯é衚瀺ã«ããŸãã |
| IsTabTransitionEnabled | ããŒã«| ã¿ãéã®é·ç§»ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
| IsSwipeEnabled | ããŒã«| ã¹ã¯ã€ããžã§ã¹ãã£ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
| ããããã£| ã¿ã€ã| 説æ|
| ---------- |ïŒ-------------ïŒ|ïŒ-------------ïŒ|
| ããã¹ã| æåå| ã¿ãã®ããã¹ãã |
| TextColor | è²| ã¿ãã®ããã¹ãã®è²ã |
| TextColorSelected | è²| éžæããã¿ãã®ããã¹ãã®è²ã |
| FontSize | FontSize | ã¿ãããã¹ãã§äœ¿çšããããã©ã³ããµã€ãºã |
| FontSizeSelected | FontSize | éžæããã¿ãã§äœ¿çšãããŠãããã©ã³ããµã€ãºã |
| FontFamily | æåå| ã¿ãã§äœ¿çšããããã©ã³ããã¡ããªã |
| FontFamilySelected | æåå| éžæããã¿ãã§äœ¿çšãããŠãããã©ã³ããã¡ããªã |
| FontAttributes | FontAttributes | ã¿ãã§äœ¿çšããããã©ã³ãå±æ§ã |
| FontAttributesSelected | FontAttributes | éžæããã¿ãã§äœ¿çšããããã©ã³ãå±æ§ã |
| ã¢ã€ã³ã³| ImageSource | ã¿ãã®ã¢ã€ã³ã³ã |
| IconSelected | ImageSource | éžæããã¿ãã®ã¢ã€ã³ã³ãšããŠäœ¿çšãããImageSourceã |
| ã³ã³ãã³ã| 衚瀺| ã¿ãã®å
容ã ãã¥ãŒã§ãããã³ã³ãã³ããšããŠäœã§ã䜿çšã§ããŸãã |
| BadgeText | ããŒã«| ã¿ãã§äœ¿çšããããããžããã¹ãã |
| BadgeTextColor | è²| ã¿ãã§äœ¿çšããããããžã®ããã¹ãã®è²ã |
| BadgeTextColorSelected | è²| éžæããã¿ãã§äœ¿çšãããŠãããããžã®ããã¹ãã®è²ã |
| BadgeBackgroundColor | è²| ã¿ãã§äœ¿çšããããããžã®è²ã |
| BadgeBackgroundColorSelected | è²| éžæããã¿ãã§äœ¿çšãããŠãããããžã®è²ã |
| IsSelected | ããŒã«| ã¿ããéžæãããŠãããã©ããã瀺ãããŒã«å€ã |
| TapCommand | ICommand | ãŠãŒã¶ãŒãã¿ããã¿ãããããšãã«å®è¡ãããã³ãã³ãã |
| TapCommandParameter | ãªããžã§ã¯ã| tapã³ãã³ããã©ã¡ãŒã¿ã |
| ã€ãã³ã| 説æ|
| ---------- |ïŒ-------------ïŒ|
| SelectionChanged | éžæããã¿ããå€æŽããããšãã«çºçããã€ãã³ãã |
| ã¹ã¯ããŒã«| ã¿ãéãã¹ã¯ã€ããããšçºçããã€ãã³ãã |
| ã€ãã³ã| 説æ|
| ---------- |ïŒ-------------ïŒ|
| TabTapped | ãŠãŒã¶ãŒãã¿ããã¿ãããããšãã«çºçããã€ãã³ãã |
Visual State ManagerïŒVSMïŒã¯ãã³ãŒããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«èŠèŠçãªå€æŽãå ããããã®æ§é åãããæ¹æ³ãæäŸããŸãã
VSMã¯ãèŠèŠçç¶æ
ã®æŠå¿µãå°å
¥ããŠããŸãã TabViewã¯ããã®åºã«ãªãç¶æ
ã«å¿ããŠãããã€ãã®ç°ãªãèŠèŠçå€èŠ³ãæã€ããšãã§ããŸãã
TabViewã«ã¯ã4ã€ã®ç¹å®ã®VisualStateããããŸãã
äžè¬çãªã·ããªãªãã«ããŒããããã€ãã®ãµã³ãã«ãèŠãŠã¿ãŸãããã
åºæ¬çãªäŸãèŠãŠã¿ãŸãããã
<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>
TabItemsSourceïŒåçã¿ãïŒã®äœ¿çšïŒ
<TabView
TabItemsSource="{Binding Monkeys}"
TabViewItemDataTemplate="{StaticResource TabViewItemTemplate}"
TabContentDataTemplate="{StaticResource TabContentTemplate}" />
åã¿ãã®å€èŠ³ã¯ã«ã¹ã¿ãã€ãºã§ããŸãã
<ControlTemplate
x:Key="TabItemTemplate">
<Grid>
...
</Grid>
</ControlTemplate>
<TabView>
<TabViewItem
Text="Tab 1"
ControlTemplate="{StaticResource TabItemTemplate}">
</TabViewItem>
</TabView>
ã¿ãéãåšæçã«ããã²ãŒãããŸããïŒ
<TabView
IsCyclical="True">
...
</TabView>
ã¬ã€ãžãŒã¿ãã®èªã¿èŸŒã¿ïŒ
<TabView
IsLazy="True">
...
</TabView>
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>
ããŸããŸãªèŠèŠçç¶æ ã䜿çšããŠãçŸåšã®ã¿ãã次ã®ã¿ããªã©ãã«ã¹ã¿ãã€ãºã§ããŸãã
<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>
XAMLãŸãã¯CïŒã䜿çšããŠãXamarin.Formsã§UIãäœæã§ããŸãã 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ã«åºã¥ã
MVUã§CïŒãµã³ãã«ãèŠãããšãã§ããŸããïŒ
TabViewã®åäœãæ¡åŒµããã衚瀺ãååã«åºãå Žåãã¿ãããã¢ã³ã©ãããããããã€ãŸããã¹ãŠã®ã¿ãã®å 容ã衚瀺ãããããã«ãããšãäžéšã®äœ¿çšã·ããªãªïŒäŸïŒç§ã®ãã®ïŒã§éåžžã«åœ¹ç«ã¡ãŸããç»é¢å šäœã ããã«ãããã¿ãã¬ããã§éåžžã«ããŸãæ©èœãããã£ãããšãããã¬ã¹ãã³ã·ããã¶ã€ã³ããå¯èœã«ãªããŸãã
æºåž¯é»è©±ãŸãã¯ããŒãã¬ãŒãã¢ãŒãã§ä¿æãããŠããã¿ãã¬ããã§ã¯ã1ã€ã®ãã€ã³ãç»é¢ã«è¡šç€ºãããä»ã®ãã€ã³ã«ã¯ãã¿ãã®åãæ¿ãããžã§ã¹ãã£ãä»ããŠå°éã§ããã¿ãä»ããã¥ãŒã衚瀺ãããŸãã ãã ããã¿ãã¬ããã暪åãã¢ãŒãã«å転ãããšïŒãŸãã¯ãååãªåºãã®ç»é¢ãåãããã¹ã¯ããããã·ã³ã®å ŽåïŒãç»é¢å šäœã«ãã¹ãŠã®ãã€ã³ãåæã«äžŠã¹ãŠè¡šç€ºãããŸãã
ImageSourceã§ã¯ãªãViewã¿ã€ãã®ã¢ã€ã³ã³ã䜿çšããŠãã ããã éç¥ã衚瀺ãããïŒéåžžã¯ã¿ãã¢ã€ã³ã³ã®äžé ã«å°ããªç¹ãšããŠïŒ
ImageSourceã§ã¯ãªãViewã¿ã€ãã®ã¢ã€ã³ã³ã䜿çšããŠãã ããã éç¥ã衚瀺ãããïŒéåžžã¯ã¿ãã¢ã€ã³ã³ã®äžé ã«å°ããªç¹ãšããŠïŒ
@MhAllanããã¯ãTabViewItemããããã£ã®BadgeTextãBadgeTextColorãBadgeTextColorSelectedãBadgeBackgroundColorãããã³BadgeBackgroundColorSelectedã䜿çšããŠå®çŸã§ãããšæããŸãã
BadgeTextã«ééã£ãã¿ã€ãããªã¹ããããŠããããã§ãããBoolã§ã¯ãªãStringã§ãããšæãããŸãã
@irongut ãã¡ã¢ãããããšãã ããããééã£ããã¶ã€ã³ã ãšæããŸãã BadgeTextã®ãããªãã®ããã£ãŠã¯ãªããŸããã
å°æ¥ã®èŠä»¶ãæºããããšãã§ãããã¬ãŒã ã¯ãŒã¯ãèããå ŽåãStringãImageSourceãªã©ã®ã¿ã€ãã§éçºè ãå¶éããã¹ãã§ã¯ãããŸããã ãããããšãããã«æ¬¡ã®ãããªåé¡ãçºçããŸãïŒãããžã®è§ãäžžãããããããžã倧ãããããå°ããããã圱ãä»ãããã¢ã€ã³ã³ã®å·Šãäžãäžãå³ãã¢ã€ã³ã³ã®åãã¢ã€ã³ã³ã®åŸããã¢ãã¡ãŒã·ã§ã³...ãªã©ããããŠã人ã ã¯ãããç°¡åã«ã«ã¹ã¿ãã€ãºã§ããªãããšã«äžæºãæããã§ãããã ãããæžããŠããç§ã¯çŸåšãX軞ãäžå¿ã«2åå転ããŠããèœã¡çãéç¥ãããžãäœæããŠããŸãã ã«ã¹ã¿ãã€ãºãã©ãã»ã©å¥åŠãªãã®ã«ãªããèŠãŠã¿ãŸãããã
@MhAllan Syncfusionã®SfTabviewã¯ãããåçã«å®è¡ããæ¹æ³ã®è¯ãäŸã§ãã
ãããã§ããããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã°ã©ãã³ã°èšèªãããã³çŽ æŽããããã¬ãŒã ã¯ãŒã¯ãç¡æã§ãããšãã«æ°åãã«ã§è²©å£²ãããŠãããã«ã®äœåãèŠãŠã¿ãã人ã¯èª°ã§ããã
Syncfusionã䜿ããšããæå³ã§ã¯ãããŸããã§ããã 圌ããã©ã®ããã«ãããããããèŠãŠãåºæ¿ããããšã¯è¯ãäŸã§ãããšèšã£ãã ãã§ããã ããã«å ããŠã圌ãã¯å人ã®é¡§å®¢ã«ç¡æã§æäŸãã100äžãè¶ ããåçã®å€§äŒæ¥ã«ã®ã¿æ¯æãããŸãã Xamarinèªäœããã1ã2æ©é²ãã§ãããšä¿¡ããŠãã ããã ããã§é©åãªCollection / ListViewãæ°ãæãæ°å¹ŽãååŸããããšããã§ããŸããã
TabViewItemã¯å
šäœãšããŠãå€ããå°ãªãããã¿ãã¢ã€ãã å
ã«å¿
èŠãªãã¥ãŒãé
眮ã§ããContentViewãæã€ã¹ãã§ããããšã«åæããŸãã çŸåšã®ãšãããã¿ããã¥ãŒã¯ãå¿
èŠãªæ¹æ³ã§ã¯ãªããæ³å®ããæ¹æ³ã§å®è£
ããããšã«å¶éãããŠããŸãã ããã©ã«ãã®å€èŠ³ãæã€ã䜿ãããããã¿ããã¥ãŒãå¿
èŠãªå Žåã¯ã SimpleTabItemView
ã¯ã©ã¹ãäœæããã ãã§ãã¿ãã¢ã€ãã ã®ãã¥ãŒãšããŠäœ¿çšã§ããŸããç¬èªã®ã«ã¹ã¿ã ãã¥ãŒã«ããç¬èªã®ã«ãã¯ã¢ã³ããã£ãŒã«ã
TabViewItemã¯å šäœãšããŠãå€ããå°ãªãããã¿ãã¢ã€ãã å ã«å¿ èŠãªãã¥ãŒãé 眮ã§ããContentViewãæã€ã¹ãã§ããããšã«åæããŸãã çŸåšã®ãšãããã¿ããã¥ãŒã¯ãå¿ èŠãªæ¹æ³ã§ã¯ãªããæ³å®ããæ¹æ³ã§å®è£ ããããšã«å¶éãããŠããŸãã ããã©ã«ãã®å€èŠ³ãæã€ã䜿ãããããã¿ããã¥ãŒãå¿ èŠãªå Žåã¯ã
SimpleTabItemView
ã¯ã©ã¹ãäœæããã ãã§ãã¿ãã¢ã€ãã ã®ãã¥ãŒãšããŠäœ¿çšã§ããŸããç¬èªã®ã«ã¹ã¿ã ãã¥ãŒã«ããç¬èªã®ã«ãã¯ã¢ã³ããã£ãŒã«ã
å®å®ããåäœã®ããã«ããã€ãã®å¶éãããã®ã¯è¯ãããšã ãšæããŸã
å®å®ããåäœã®ããã«ããã€ãã®å¶éãããã®ã¯è¯ãããšã ãšæããŸã
䜿ãããããå®å®ããæäœãã®ããã«ãããã©ã«ãã®ã¿ããã¥ãŒãåŒãç¶ã䜿çšã§ããŸãã ãã¥ãŒå šäœãå¶éããçç±ã¯ãããŸããã
ãããã¯ä»ã®ãšããXamarinCommunityToolkitã«ç§»è¡ããŠããŸã
æãåèã«ãªãã³ã¡ã³ã
@irongut ãã¡ã¢ãããããšãã ããããééã£ããã¶ã€ã³ã ãšæããŸãã BadgeTextã®ãããªãã®ããã£ãŠã¯ãªããŸããã
å°æ¥ã®èŠä»¶ãæºããããšãã§ãããã¬ãŒã ã¯ãŒã¯ãèããå ŽåãStringãImageSourceãªã©ã®ã¿ã€ãã§éçºè ãå¶éããã¹ãã§ã¯ãããŸããã ãããããšãããã«æ¬¡ã®ãããªåé¡ãçºçããŸãïŒãããžã®è§ãäžžãããããããžã倧ãããããå°ããããã圱ãä»ãããã¢ã€ã³ã³ã®å·Šãäžãäžãå³ãã¢ã€ã³ã³ã®åãã¢ã€ã³ã³ã®åŸããã¢ãã¡ãŒã·ã§ã³...ãªã©ããããŠã人ã ã¯ãããç°¡åã«ã«ã¹ã¿ãã€ãºã§ããªãããšã«äžæºãæããã§ãããã ãããæžããŠããç§ã¯çŸåšãX軞ãäžå¿ã«2åå転ããŠããèœã¡çãéç¥ãããžãäœæããŠããŸãã ã«ã¹ã¿ãã€ãºãã©ãã»ã©å¥åŠãªãã®ã«ãªããèŠãŠã¿ãŸãããã