- 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!
Recommended editorial content
With your consent, external content is loaded here.
By clicking on the button above, you agree that external content may be displayed to you. Personal data may be transmitted to third-party providers in the process. You can find more information about this in our Privacy Policy.