It is possible to do through xml.
You would need to use a base style and then override the components you need.
Its very clunky to be honest and i haven't seen a good explanation anywhere.
Also its not possible to change a style on runtime, only before the view is created.