Faits: A. A._ se trouve en détention préventive depuis le 8 mars 2008, sous l'inculpation de tentative de meurtre, subsidiairement de mise en danger de la vie d'autrui, voies de fait, injures et contrainte. Le 7 mars 2008, au cours d'une dispute avec son ex-épouse B._, le prévenu, sous l'influence de l'alcool, l'avait giflée à plusieurs reprises en la tenant par les cheveux; il lui avait ensuite serré le cou, ne relâchant son étreinte qu'après avoir constaté que la victime ne pouvait plus respirer et était sur le point de s'évanouir; il l'avait encore retenue en lui mettant la main devant la bouche lorsqu'elle avait tenté d'appeler de l'aide. Le 11 mars 2008, le Juge d'instruction de l'arrondissement de Lausanne a rejeté une demande de mise en liberté, en raison du risque de récidive. Le 14 mars 2008, il a ordonné la libération du prévenu: la vie de la victime avait potentiellement été mise en danger, mais l'élément subjectif pour une tentative de meurtre faisait défaut. Le prévenu et la victime avaient divorcé en raison de violences physiques liées à la consommation d'alcool de l'inculpé; ils ne vivaient plus ensemble et on pouvait raisonnablement penser que la détention subie avait fait réfléchir le prévenu sur la portée de ses actes; le risque de récidive n'était plus avéré. B. Par arrêt du 3 avril 2008, le Tribunal d'accusation du Tribunal cantonal vaudois a admis un recours formé par le Ministère public, et ordonné le maintien en détention préventive. Le prévenu connaissait des problèmes d'alcool depuis de nombreuses années; il admettait devenir violent après avoir bu. Il était donc nécessaire de prévoir une prise en charge avant toute mise en liberté. C. A._ forme un recours en matière pénale. Il conclut à l'annulation de l'arrêt cantonal et à sa mise en liberté immédiate. Il requiert l'assistance judiciaire. Le Tribunal d'accusation se réfère à son arrêt. Le Ministère public et B._ concluent au rejet du recours. Le recourant a pu se déterminer à nouveau. 