Форум программистов, компьютерный форум CyberForum.ru

Фрагмент сжимается в активити - Android

Восстановить пароль Регистрация
 
danek130995
 Аватар для danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 775
15.11.2016, 09:37     Фрагмент сжимается в активити #1
Первый раз такое встречаю, магия какая-то, может я чего-то еще не знаю. Вот код фрагмента:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal">
 
    <ImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:id="@+id/image"
        android:src="@drawable/someImage"
        android:layout_gravity="center"
        android:visibility="visible"
        android:layout_weight="1"/>
 
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="20dp"
        android:background="@color/green">
      //здесь некоторый контент, который размещен внизу экрана, так как у изображения стоит вес 1, а этот wrap.
    </LinearLayout>
</LinearLayout>
Сам фрагмент в превью отображается правильно, во весь экран. Но если поместить данный фрагмент в такое активити:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <LinearLayout
        android:orientation="horizontal"
        android:id="@+id/show"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </LinearLayout>
 
</LinearLayout>
в контейнер c id = show, весь этот фрагмент сжимается в левый верхний угол, что очень странно! Кроме того, если изменить код контейнера на этот:
XML
1
2
3
4
5
6
7
  <LinearLayout
        android:orientation="vertical"
        android:id="@+id/show"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
       >
    </LinearLayout>
то фрагмент растягивается по ширине, но по высоте опять сжимается. Вообще, как мне кажется, разницы быть не должно между 1 и 2 вариантом, так как и там и там он растягивается по всей возможной ширине и высоте благодаря match_parent, а ориентация horizontal/vertical не должна влиять, в контейнере то нет никаких дочерних элементов. В обоих случаях на xml-превью контейнер заполняет полностью экран. В общем, все это очень странно. Ниже я привожу скриншоты в таком порядке:сначала идет скриншот фрагмента, как он должен выглядеть, потом скриншот фрагмента в 1 варианте контейнера, потом во втором.
Фрагмент сжимается в активити

Фрагмент сжимается в активити

Фрагмент сжимается в активити
Почему так происходит?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2016, 09:37     Фрагмент сжимается в активити
Посмотрите здесь:

Активный фрагмент внутри активити Android
Android Доступ из активити в фрагмент
Android Переход через фрагмент на активити
Сжимается layout при появлении клавиатуры Android
Что лучше использовать фрагмент или активити Android
Android Передать SearchView из активити во фрагмент
Android Переход из уведомления в фрагмент активити
На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fraley
74 / 74 / 28
Регистрация: 24.05.2015
Сообщений: 209
15.11.2016, 09:48     Фрагмент сжимается в активити #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Попробуйте поменять LinearLayout, в который вставляете фрагмент на FrameLayout.
danek130995
 Аватар для danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 775
15.11.2016, 10:05  [ТС]     Фрагмент сжимается в активити #3
fraley, помогло, спасибо! А почему это помогло?

Добавлено через 13 минут
fraley, скажите пожалуйста, почему во FrameLayout все норм, а в Linear нет?
fraley
74 / 74 / 28
Регистрация: 24.05.2015
Сообщений: 209
15.11.2016, 10:12     Фрагмент сжимается в активити #4
Цитата Сообщение от danek130995 Посмотреть сообщение
fraley, скажите пожалуйста, почему во FrameLayout все норм, а в Linear нет?
http://stackoverflow.com/questions/1...-for-fragments
danek130995
 Аватар для danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 775
15.11.2016, 10:24  [ТС]     Фрагмент сжимается в активити #5
fraley,
FrameLayout разработан, чтобы блокировать область на экране для отображения одного элемента
Т.е. получается, он блокирует область на экране таким образом, чтобы его дочерний элемент полностью располагался на всем пространстве?
Yandex
Объявления
15.11.2016, 10:24     Фрагмент сжимается в активити
Ответ Создать тему
Опции темы

Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru