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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873
#1

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

15.11.2016, 09:37. Просмотров 190. Ответов 4
Метки нет (Все метки)

Первый раз такое встречаю, магия какая-то, может я чего-то еще не знаю. Вот код фрагмента:
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 варианте контейнера, потом во втором.
Фрагмент сжимается в активити

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

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

Активити и фрагмент - Программирование Android
в фрагменте у меня есть функция public void setBmp(Bitmap bmp) { } в активити я использую Fragment f =...

Из Активити в Фрагмент - Программирование Android
Как передать данные из активити в фрамгент? пробую так но выкидывает из приложения Fragment f =...

Доступ из активити в фрагмент - Программирование Android
Здравствуйте, такой вопрос есть активити import java.io.File; import java.io.IOException; import...

Передать SearchView из активити во фрагмент - Программирование Android
У меня есть SearchView в активити и тесть фрагмент который запускается через транзакцию. И как мне правильно передать SearchView из...

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

Переход через фрагмент на активити - Программирование Android
Добрый день ! Какой код должен быть чтобы на &quot;активити 1&quot; с открытым фрагментом , на котором есть кнопка при нажатии на которую активити1...

4
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
15.11.2016, 09:48 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Попробуйте поменять LinearLayout, в который вставляете фрагмент на FrameLayout.
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873
15.11.2016, 10:05  [ТС] #3
fraley, помогло, спасибо! А почему это помогло?

Добавлено через 13 минут
fraley, скажите пожалуйста, почему во FrameLayout все норм, а в Linear нет?
0
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
15.11.2016, 10:12 #4
Цитата Сообщение от danek130995 Посмотреть сообщение
fraley, скажите пожалуйста, почему во FrameLayout все норм, а в Linear нет?
http://stackoverflow.com/questions/1...-for-fragments
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873
15.11.2016, 10:24  [ТС] #5
fraley,
FrameLayout разработан, чтобы блокировать область на экране для отображения одного элемента
Т.е. получается, он блокирует область на экране таким образом, чтобы его дочерний элемент полностью располагался на всем пространстве?
0
15.11.2016, 10:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2016, 10:24
Привет! Вот еще темы с ответами:

Активный фрагмент внутри активити - Программирование Android
Всем привет. Есть активити с content_frame, есть фрагмент. В Activity фрагмента gridView При старте фрагмента приложение вылетает с...

Что лучше использовать фрагмент или активити - Программирование Android
Ребят всем привет. Появился проект и возник некоторый вопрос, сейчас попробую описать. В проекте есть navigation view, и к нему нужно...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки &quot;войти&quot; в отдельном классе &quot;сокетсервер&quot;(+в отдельном потоке)...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru