B4J Question Applying css stylesheets to CustomListViews

GuyBooth

Active Member
Licensed User
Longtime User
I have 5 clvs. Each one has a unique name (clv1, clv2, c;lv3 etc) is loaded to a tabpane page.
The Tabpane is attached to a main form named dtmm_Main

The main layout is loaded with
B4X:
    MainForm = dtmm_mainform
     'Load the main layout file
    MainForm.RootPane.LoadLayout("dtmm_main")
    ' Show
    MainForm.Show
    ' Load css stylesheets
    dtmm_mainform.Stylesheets.Add(File.GetUri(File.DirAssets, "scrollbars.css"))
The style sheet changes the color and style of the scrollbars of all 5 clvs. The stylesheet looks like this:
B4X:
.scroll-bar:vertical .track{
    -fx-background-color: blue;
    -fx-border-color: blue;
}
.scroll-bar:vertical .thumb {
    -fx-background-color: green;
}
This works, but it makes all the scrollbars look the same, and for each CLV I actually want a different color.
In a previous use of stylesheets I was able to assign an ID to each instance of a table, but when I try to do the same thing with the clvs I find the clvs do not have an ID property. Nor do the tabpages.
If I were able to do this, my css would look like this:
B4X:
#clv1 .scroll-bar:vertical .track{
    -fx-background-color: blue;
    -fx-border-color: blue;
}
#clv1 .scroll-bar:vertical .thumb {
    -fx-background-color: green;
}
#clv2 .scroll-bar:vertical .track{
    -fx-background-color: black;
    -fx-border-color: black;
}
#clv2 .scroll-bar:vertical .thumb {
    -fx-background-color: blue;
}
#clv3 .scroll-bar:vertical .track{
    -fx-background-color: red;
    -fx-border-color: red;
}
#clv3 .scroll-bar:vertical .thumb {
    -fx-background-color: black;
}
#clv4 .scroll-bar:vertical .track{
    -fx-background-color: yellow;
    -fx-border-color: yellow;
}
#clv4 .scroll-bar:vertical .thumb {
    -fx-background-color: grey;
}
#clv5 .scroll-bar:vertical .track{
    -fx-background-color: white;
    -fx-border-color: white;
}
#clv5 .scroll-bar:vertical .thumb {
    -fx-background-color: magenta;
}
But I need to be able to assign a different ID to each clv.
Is there any way to do this?
 

EnriqueGonzalez

Expert
Licensed User
Longtime User
Clv may not have an ID but an underlying node might.

Try scenic view to find which is the one you need
 
Upvote 0
Top