iOS Question Change tabstrip label color when focus

Discussion in 'iOS Questions' started by Leni Berry, Oct 19, 2017.

  1. Leni Berry

    Leni Berry Active Member Licensed User

    in B4A, tabstripviewpager can do this to change tabstrip color label when it focused :

    Code:
    For Each lbl As Label In GetAllTabLabels(tabkategori)
            
    If i = Position Then
                lbl.TextColor = 
    Colors.White
                strcat=lbl.Text
            
    Else
                lbl.TextColor = 
    Colors.ARGB(180,255,255,255)
            
    End If
            i = i + 
    1
        
    Next
    and procedure for GetAllTabLabels is:

    Code:
    Public Sub GetAllTabLabels (tabstrip As TabStrip) As List
        
    Dim jo As JavaObject = tabstrip
        
    Dim r As Reflector
        r.Target = jo.GetField(
    "tabStrip")
        
    Dim tc As Panel = r.GetField("tabsContainer")
        
    Dim res As List
        res.Initialize
        
    For Each v As View In tc
            
    If v Is Label Then res.Add(v)
        
    Next
        
    Return res
      
    End Sub
    is there the similiar way for doing that in B4i Tabstrip?
     
  2. Erel

    Erel Administrator Staff Member Licensed User

    Try this:
    Code:
    Private Sub Application_Start (Nav As NavigationController)
       
    'SetDebugAutoFlushLogs(True) 'Uncomment if program crashes before all logs are printed.
       NavControl = Nav
       MainPage.Initialize(
    "MainPage")
       MainPage.RootPanel.LoadLayout(
    "Main")
       NavControl.ShowPage(MainPage)
       TabPages.Initialize
       
    Dim cs As CSBuilder
       
    Dim page1, page2, page3 As Page
       
       
       page1.Initialize(
    "page1")
       page1.RootPanel.LoadLayout(
    "Tab1")
       SetAttributedTitle(page1, cs.Initialize.Append(
    "Bing"))
       WebView1.LoadUrl(
    "https://www.bing.com")
       TabPages.Add(page1)
       
       page2.Initialize(
    "page2")
       page2.RootPanel.LoadLayout(
    "Tab1")
       WebView1.LoadUrl(
    "https://www.google.com")
       SetAttributedTitle(page2, cs.Initialize.Append(
    "Google"))
       TabPages.Add(page2)
       
       page3.Initialize(
    "page3")
       page3.RootPanel.LoadLayout(
    "Tab1")
       WebView1.LoadUrl(
    "https://www.duckduckgo.com")
       SetAttributedTitle(page3, cs.Initialize.Append(
    "DuckDuckGo"))
       TabPages.Add(page3)
         
       TabStrip1.SetPages(TabPages)
       
    End Sub

    Sub TabStrip1_PageSelected (Position As Int)
       
    For i = 0 To TabPages.Size - 1
         
    Dim p As Page = TabPages.Get(i)
         
    Dim lbl As Label = p.TitleView
         
         
    Dim clr As Int
         
    If i = Position Then clr = Colors.Red Else clr = Colors.Black
         
    Dim cs As CSBuilder
         SetAttributedTitle(p, cs.Initialize.Color(clr).Append(lbl.AttributedText.ToString).PopAll)
       
    Next
       
       
    Dim no As NativeObject = TabStrip1
       Sleep(
    50)
       no.RunMethod(
    "reloadPagerTabStripView"Null)
    End Sub
     
    Leni Berry likes this.
  3. Leni Berry

    Leni Berry Active Member Licensed User

    tq so much
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice