Почему FrameLayout используется для фрагментов?

Где бы я ни выглядел, FrameLayout похоже, используется как FragmentContainer . Почему FrameLayout всегда видел Fragments ?

Вы можете в основном использовать RelativeLayout или LinearLayout он все равно будет работать, но ответ на ваш вопрос находится в документации FrameLayout :

FrameLayout предназначен для блокировки области на экране, чтобы отобразить один элемент. Как правило, FrameLayout следует использовать для хранения одного дочернего представления, потому что может быть сложно организовать дочерние представления таким образом, чтобы они были масштабируемы для разных размеров экрана, при этом дети не перекрывали друг друга. Тем не менее, вы можете добавить несколько детей в FrameLayout и управлять своей позицией в FrameLayout, назначив гравитацию каждому ребенку, используя атрибут android: layout_gravity.

Вы можете больше узнать о FrameLayout здесь: FrameLayout / Android Developers

Основная цель компоновки фреймов – блокировать область, необходимую для соответствия самому большому детскому виду. Если вы используете компоновку фреймов в качестве контейнера фрагментов, вы можете убедиться, что у вас всегда есть пространство для размещения самой большой компоновки фрагментов.

В некоторых случаях вам может потребоваться иметь более одного фрагмента на экране одновременно, в этом случае вы должны предпочесть относительную или линейную компоновку.

Все зависит от требований пользователя и необходимости настройки.

Нет необходимости использовать FrameLayout.

Например, в нижнем коде отсутствует макет, а сам фрагмент содержит только одно изображение.

 public class MyFragment extends Fragment implements OnClickListener{ String TAG="MyFragment"; Context c; MyFragment(Context con){ c=con; } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub ImageView v=new ImageView(c); //other imageview stuff return v; } @Overrides public void onClick(View v) { // TODO Auto-generated method stub Log.i(TAG, "onClcik"); } } 
Intereting Posts
Может ли Android Studio автоматически извлекать ссылки из XML-файла Layout в java-файл Activity? Как загрузить мое приложение (Android apk-файл), которое превышает 50 МБ в магазине Google Play? Запуск пользовательской сборки Gradle Android в Android Studio Как сохранить информацию о местоположении в Firebase Как реализовать галерею изображений в Gridview в Android? Android BLE Gatt timeout после gatt.writeDescriptor () IllegalStateException: недопустимые таблицы при попытке запроса базы данных с помощью ContentProvider Установите значок в группу в меню параметров Глубокая привязка Android к приложению Расположение Tower в Android Как обрабатывать события сокетов в качестве фонового сервиса в Android? WINDOW_SERVICE не может быть разрешено переменной Значение абсолютного пути установки градиента для файла хранилища ключей Динамически добавлять значения в массив long Возможно ли создать пользовательский вид для ActionBar SubMenu?