- Forum posts: 4
Jun 17, 2015, 10:42:35 PM via Website
Jun 17, 2015 10:42:35 PM via Website
I've several views on a GlMap.
GLMap glMap = (GLMap) findViewById(R.id.glMap);
glMap.addWidget((HeightDigitalView) findViewById(R.id.heightDigital));
glMap.addWidget((HeightHistoryView) findViewById(R.id.heightHistory));
glMap.addWidget((SpeedDigitalView) findViewById(R.id.speedDigital));
Now I have a preferences menu with preferences.xml. I want the user to enable/disable the views as he wants
Checkbox "Show HeightDIgitalView"
Checkbox "Show HeightHistoryView"
...
Removing or setting invisible the view is easy (View.GONE)
View myView = findViewById(R.id.heightDigital);
ViewGroup parent = (ViewGroup) myView.getParent();
parent.removeView(myView);
But how on earth can I get it done, that renderer is not called anymore on the view?
public class HeightDigitalView extends TextView implements Renderable {
@Override
public void render(MapCanvas mapCanvas) {
if (positionProviderService.getCurrentLocation() != null) {
double altitude = positionProviderService.getCurrentLocation().getAltitude();
....
When I remove the view "render" is still invoked.
As far as I have many views with lot of functionality and the app shouldn't use much battery and it's runned for hours for me it's important to optimize the application - so don't call render on not showed views.
Thanks for help!