How to stop android from redrawing the entire screen whenever something changes?
<p>I've got an app that allows users to build complicated screen layouts from a set of predefined controls. Then those controls talk to each other to generate the final functionality. The problem I'm seeing is that no matter what I do it seems that any redrawing caused by a change in one control is forcing the entire screen to redraw (as seen by enabling "Show Screen Changes"). Because I've got a lot of custom controls without much XML behind them, this redrawing can be pretty slow.</p>

<p>For instance, one control might be a calculator which is built from a few linear layouts. Another might be a dynamically generated command grid build from linear layouts. Each of these is then added to a parent relative layout when the screen is loaded. Pressing a key on the calculator forces the command grid to redraw even though nothing has changed in any of its views.</p>

<p>I've tried turning on hardware acceleration and changing all of the views' layer types to LAYER_TYPE_HARDWARE with no luck. </p>

<p>How do I ensure that only a specific subsection of the screen gets redrawn? At this point I'm not doing any calls to invalidate myself, but I've got my own themable versions of buttons, layouts, and other UI components so if I need to go down to that level of control at least there's already a framework in place for it.</p>
