TOAD now has a way to switch a session's container by right-clicking the connection button and selecting containers. However, I don't see any way to force it to update the list when a new container is created in a database. Even when I alter session to a new container, the list does not get refreshed. I switched back and forth a few times, and eventually the list updated.
My initial connection was to the root container, but the session was in a PDB when the new PDB was created. I thought about needing to switch back to the root to get that to update, but it did not initially do so. I then manually switched to the new container from the root session, and though the switch was successful, the new PDB was not in the list though the session was "up" in it. I switched back and forth a few more times and then saw that it had updated.
I will test this again when I have time to create another new PDB somewhere.
If your initial connection is the container, you can also cause an update by going to Database -> Administer -> Tablespaces, checking "Include Pluggables", then refreshing (It actually refreshes the list of of containers more often than it needs to - once for every tablespace). But that should at least get your list updated.
I see that when the initial connection is to a PDB, the contents of the list is what one would expect to see "within" a PDB--even with a common user. After switching to root using that control and then switching back to any PDB, the full list of PDBs follows the session around.
I have now created a PDB in a container database with two active connections. One had been made directly to a PDB service and the other directly to root. I then created the new PDB using sqlplus right on the server. Initially, the new PDB did not appear in either connection's containers list, which is as expected. One would expect that without doing anything in TOAD after such a stunt, the lists would remain as they had been.
Then, in the PDB-connected session, I switched to the root container, and the new PDB showed up immediately.
In the root-connected session, the new PDB did not show up even after switching to another PDB in the containers list and switching back to root. In that connection, I switched back and forth between root and one of the offered PDBs and also jumped from one PDB directly to another, but the new PDB stubbornly refused to appear in the list. The new PDB did not appear until I did that trick you suggested with Database->Administer->Tablespaces.
I have also noticed that manually switching containers using 'alter session' in an Editor window causes the button control to get out of sync. It still works, but after a manual switch, it does not reflect the switch on the button or with the checkmark in the containers list. This is, perhaps, unavoidable.
I'll log this. I think it can be solved as log as you don't use the "threaded query" option. If you do use that option, then you are not changing containers for all of Toad, only that tab in the Editor.