Вы должны предпочесть Framelayout в качестве родительского для Imageview и EditText.
Framelayout предназначен для отображения стека дочерних элементов управления View. Несколько элементов управления представления могут быть добавлены к этому макету.
Однако вы можете добавить несколько дочерних элементов в FrameLayout и управлять их положением в FrameLayout, назначая гравитацию каждому дочернему элементу, используя атрибут android: layout_gravity .
Таким образом, вы можете избежать проблемы, вызванной Softkeyboards, так как framelayout не будет удерживать относительные позиции.