Great Britain, vastly weakened by two world wars, was able to hold its empire together. The time had come for the sun to set at last on the Union Jack.
Non-violence achieves its ends chiefly in the courts of public opinion. Although the Brits could be brutal at times, they had not the stomach for the kind of mass killing that we saw of the Germans, Soviets and Chinese.
Japan vowed to fight WWII to the last man, and only acquiesced when the Allies demonstrated that we were willing to kill them to the last man.
Had the Brits begun to systematically wipe out millions (as did the Germans) or tens of millions (such as the Soviets), or scores of millions (such as the Chinese), Gandhi's non-violence would have looked pretty silly.
But Christian nations like the Brits and the U.S. have no stomach for such things. We're always looking over our shoulder and considering the moral nature of such actions.
Non-violence has its chief support in the courts of public opinion, and in India's case, there were willing accomplices back in England and America. Non-violence can be a powerful weapon at the right place and the right time.
Edit to above: That rich centuries older civilization still throws acid in women's faces. Mother Theresa was at first censured because it was felt that helping the poor upset Karma. Thanks. But I'll take England anytime.