How to change Slider label colour in Flutter? - constructor

Is it possible to change the Slider label colour in Flutter?
There is no such field in constructor of Slider class.

According to Flutter api use valueIndicatorColor which is the property of SliderThemeData As mention here SliderClass
and here SliiderThemeData
Simple Demonstration:
set local variables:
double feet = 0;
String heightInFeet = "null";
int height = 180;
and Here comes your Custom Slider Solution
SliderTheme(
data: SliderTheme.of(context).copyWith(
valueIndicatorColor: Colors.blue, // This is what you are asking for
inactiveTrackColor: Color(0xFF8D8E98), // Custom Gray Color
activeTrackColor: Colors.white,
thumbColor: Colors.red,
overlayColor: Color(0x29EB1555), // Custom Thumb overlay Color
thumbShape:
RoundSliderThumbShape(enabledThumbRadius: 12.0),
overlayShape:
RoundSliderOverlayShape(overlayRadius: 20.0),
),
child: Slider(
value: height.toDouble(),
onChanged: (double newValue) {
setState(() {
height = newValue.toInt();
feet = (height / 30.48);
heightInFeet = feet.toStringAsFixed(2) + " feet";
});
},
divisions: 220,
label: heightInFeet,
min: 90.0,
max: 305.0,
),
)
and if you want to change Text color text font etc. use
valueIndicatorTextStyle: TextStyle(
color: Colors.amber, letterSpacing: 2.0)
in SliderThemeData

that´s one way to do it, but that will change all the placer where accentTextTheme it´s use, you can use this:
Theme(
child: yourSlide,
data: Theme.of(context).copyWith(
accentTextTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)),
),
)
This way you will only change the widget you need to change and not the entire accentTextTheme that can be use for other that maybe you don't need to change.

Use SliderThemeData:
sliderTheme: ThemeData.dark().sliderTheme.copyWith(
valueIndicatorColor: _primaryColor,
valueIndicatorTextStyle: TextStyle(
backgroundColor: Colors.transparent
)
)

I have found that it is specified in Slider class above label field.
The label is rendered using the active [ThemeData]'s
[ThemeData.accentTextTheme.bodyText2] text style.
When creating the App widget it is necessary to specify the accentTextTheme and the bodyText2 field.
return MaterialApp(
theme: ThemeData(
accentTextTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)),
),
home: MyHomePage(),
);

Related

Flutter Html Change Color of Number of Ordered List Items

I want to change the color from the number of the items of the OrderedList . But I do not find a way to do this.
I can set the list style to example dots or numbers like in the following code example, but I can not find a way to change the color:
Html(
data: "<ol><li>Item 1</li><li>Item2</li></ol>",
style: {
"li": Style(
listStyleType: ListStyleType.fromWidget(Padding(
child: CircleAvatar(radius: 2,´
backgroundColor: Color.fromARGB(255, 230, 50, 50),)))),, },),
If I do not override the default styling the numbers stay black even when I change the color of the text itself.

Cannot change Tabs text and icon colors in KivyMD

Iam trying to learn how to program with KivyMD. After doing some research and watching some tutorials iam putting a GUI together with the trail-and-error approach.
At the moment iam trying to change the colors of the Tab text and icons. After hours of online searching iam still not able to change them. The text_color_normal:and text_color_active: in the .kv file simply
seems to have no effect on them. I have the feeling iam doing something fundamentally wrong here. Can somebody give me some tips how to proceed? Main.py and .KV file are below.
Thanks in advance!
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivymd.uix.tab import MDTabsBase
from kivymd.font_definitions import fonts
from kivymd.icon_definitions import md_icons
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty
from kivy.uix.widget import Widget
Window.size = (300, 500) # voor develop doeleinden mobielscherm
class Screen1(Screen):
pass
class Screen2(Screen):
pass
class Screen3(Screen):
pass
class Screen4(Screen):
pass
class Tab(FloatLayout, MDTabsBase):
pass
class Tab1(FloatLayout, MDTabsBase):
pass
class DemoApp(MDApp):
def build(self):
self.theme_cls.primary_palette = 'Red'
screen = Builder.load_file('demo_file.kv')
return screen
def navigation_draw(self):
print('navigation')
DemoApp().run()
demo_file.kv
Screen:
NavigationLayout:
ScreenManager:
id:screen_manager
Screen1:
name: 'home_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Home'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 0
specific_text_color: 0,0,0,1
MDTabs:
id:android_tabs
tab_bar_height: '35dp'
background_color: 1,0,0,0.85
elevation: 0
text_color_normal: 0, 1, 0, 1
text_color_active: 1, 0, 0, 1
color_indicator: 0.95, 0.95, 0.1, 1
Tab:
text: 'Tab1'
Tab1:
text: 'chart-pie'
MDBottomAppBar:
MDToolbar:
title: 'Start sessie'
mode: 'end'
type: 'bottom'
on_action_button: app.navigation_draw()
icon: 'beer'
icon_color: 0.95, 0.95, 0.1, 1
Screen2:
name: 'profile_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Profiel'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 7
Widget:
Screen3:
name: 'session_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Sessies'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 10
Widget:
Screen4:
name: 'logout_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Uitloggen'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 10
Widget:
MDNavigationDrawer:
id:nav_drawer
BoxLayout:
orientation: 'vertical'
spacing: '8dp'
padding: '8dp'
Image:
source: 'avatar.jpg'
MDLabel:
text: ' Name'
front_style: 'Subtitle1'
size_hint_y: None
height: self.texture_size[1]
MDLabel:
text: ' email#hotmail.com'
front_style: 'Caption'
size_hint_y: None
height: self.texture_size[1]
ScrollView:
MDList:
OneLineIconListItem:
text: 'Profiel'
on_press: screen_manager.current = 'profile_screen'
IconLeftWidget:
icon: 'face-profile'
on_press: screen_manager.current = 'profile_screen'
OneLineIconListItem:
text: 'Drink sessies'
on_press: screen_manager.current = 'session_screen'
IconLeftWidget:
icon: 'beer'
on_press: screen_manager.current = 'session_screen'
OneLineIconListItem:
text: 'Uitloggen'
on_press: screen_manager.current = 'logout_screen'
IconLeftWidget:
icon: 'logout'
on_press: screen_manager.current = 'logout_screen'
<Tab>:
MDLabel:
text:'tab1'
user_font_size: "48sp"
pos_hint: {"center_x": .5, "center_y": .5}
<Tab1>:
MDLabel:
text:'tab2'
user_font_size: "48sp"
pos_hint: {"center_x": .5, "center_y": .5}
I finally figured out why my code was not working. While searching the web i stumbled across the change logs and i found out that the unreleased version contains a fix for text_color_normal and text_color_active. Which means that in my current version (0.104.1) the parameters did not work the way they should. Installing KivyMD with pip install https://github.com/kivymd/KivyMD/archive/master.zip works for me.
Thanks for your effort to solve this!
Change the color of the text/icon of the tabs? That is working for me.
Maybe try reinstall KivyMD.
test this instead : text_color : rgba(253, 0, 253,255)
it's worked for me

New line `\n` not being respected when reading from SQflite result

I have a line break \n in a string that I'm reading from my sqflite row (the specific column data type is TEXT) through the bloc state, and am trying to display it within a TextSpan-
RichText(
text: TextSpan(
text: _state.feedback, //this is the string
style: TextStyle(
fontSize: 20,
color: Colors.black
)
),
)
When doing this, it just renders onscreen as the literal some text \n some text, but if I hardcode the same string as the text value instead of reading from the bloc state, eg:
RichText(
text: TextSpan(
text: "some text \n some text"
style: TextStyle(
fontSize: 20,
color: Colors.black
)
),
)
I've tried with just a plain Text(_state.feedback) widget as well, and I get the exact same behaviour.. line break works correctly when I hard-code the text value, but won't break when reading the string from the column value.
Has anyone else experienced this or can see something I'm doing wrong?
Have you tried it like this:
text: "${_state.feedback}",
I hope it works for you.
Try this. It should work.
text: _state.feedback.replaceAll(r'\n', '\n'),

TVCardView's focusSizeIncrease not working?

I'm trying to manipulate the focusSizeIncrease property of a TVCardView like this:
cardView.contentSize = CGSize(width: 200, height: 200)
cardView.focusSizeIncrease = NSDirectionalEdgeInsets(top: -10, leading: -10, bottom: -10, trailing: -10)
The value of focusSizeIncrease is changed when I read it afterwards, but the new value is ignored.
When I read the property in shouldUpdateFocus(in: UIFocusUpdateContext) or didUpdateFocus(in: UIFocusUpdateContext, with: UIFocusAnimationCoordinator) it has been changed back to the default NSDirectionalEdgeInsets(top: -23.0, leading: -23.0, bottom: -23.0, trailing: -23.0).
Has anybody got this working?
Apple's Documentation: https://developer.apple.com/documentation/tvuikit/tvlockupview/2967067-focussizeincrease
This has fixed by Apple in tvOS 13.

html5 kinetic text ascii

How to visualize ascii chars to "human readable" in kineticJS?
var figure = new Kinetic.Text({
x: 75/2,
y: 75/2,
text: "♘",
fontSize: 30,
fontFamily: "Calibri",
textFill: "green",
align: "center",
verticalAlign: "middle"
});
This has nothing to do with KineticJS. You are asking how to take a string containing HTML character entities and decode the entities. See Convert HTML Character Entities back to regular text using javascript for answers to that question.