The reason why your content fit 2 strings inside dropdown, is that you explicitly wrap your DropdownButtonHideUnderline inside SizedBox with width: 50 (in your first code sample). That width controls your DropdownButton's width.
DropdownButtonHideUnderline
SizedBox
width: 50
width