Reputation: 37536
I'm trying to make an application thats has blinking effect,
e.g. switching back and forth between 2 layouts, one is red and the other is blue for example.
(any layout has diffrent image in it)
When trying to switch fast between 2 activities or 2 fragments the application is crashing.
How can I programmatically change activity layout in a better way?
Upvotes: 0
Views: 427
Reputation: 5270
You should just change the background color or the layout that is being displayed by the Activity.
Think about efficiency:
If you change layouts android will have to inflate the XML and its widgets and you will have to get handles to all these by querying and layout (ie findViewById). You can think of the first problem of this as refreshing a web page to change the color of an element instead of just rendering dynamically. You can think of the second part of this as not caching DOM handles and having to requery-ing the DOM every time you want to provide and action in JavaScript. Both are bad practice.
Or, you could just change the background of the current layout every X seconds, minutes or whatever you are trying to do. There are many ways to do this - the AlarmManager, or start a Thread with a timeout - or better yea, start a new Thread that will post a runnable back to the main thread to change the background color - then sleep the auxiliary thread for X seconds and repeat the loop.
The second idea is not only good practice - but you are using the SDK framework correctly.
Good Luck!
Upvotes: 1
Reputation: 86948
My personal reservations against blinking aside, you could change just the background color of your root layout with a timer.
Upvotes: 2