I don't think there is a single solution to the problem. If there was, and we knew about it, there would no longer be the problem of childhood obesity.
There are things that can help prevent childhood obesity, but I don't think there is a realistic solution to make it 100% preventable. I suppose if the entire planet stops having children, that would stop the problem. No children on earth means no children to be obese. Of course that's a ridiculous solution.
I think the best solution comes down to diet and exercise. Metabolism is the sum total of all of the body's chemical processes. It's complex, but let's simplify it. The sum total comes down to a balance of energy in and energy out. Food energy is measured in calories. Eating is calories in. Exercise is calories burned out. Equal calories in and out results in a net calorie count of zero.
If a person wants to eat a lot, they have to burn a lot of calories. Otherwise the body is going to store that food as fat. If a person is not going to exercise a lot, and that person wants to avoid weight gain, he/she has to reduce calorie intake. Reducing calorie intake could be fewer meals per day, reduced portion size, or eating fewer calorie dense foods.
My solution is diet and exercise. That solution is something that most people already know, but I don't think people realize exactly how much exercise is actually necessary. A 40 minute PE class isn't enough. And simply being in PE class doesn't mean a person is actually doing exercise. Kids (and adults) need to be more active than many currently are.
As for the influence of obesity on society, I think it is a slippery slope. The more people that become obese, the more it looks normal. Once it becomes normal, then it is no longer seen as a problem. Once that happens, people don't bother trying to fix it.