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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 5.00
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
#1

После setVisibility(View.GONE) не могу сделать элемент видимым - Android

16.02.2014, 18:30. Просмотров 3028. Ответов 8
Метки нет (Все метки)

Нужно скрывать/показывать нижнюю панель (LinearLayout).
Если скрыть ее (View.GONE), то элемент (fragment), заполняет весь экран.
Но вызов setVisibility(View.VISIBLE) приводит к тому, что панель якобы становится видимой (getVisibility() == View.VISIBLE), но на экране не появляется. Вероятно, осташись за пределами видимой области.
Как исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2014, 18:30     После setVisibility(View.GONE) не могу сделать элемент видимым
Посмотрите здесь:

Не могу понять, какой элемент использовать Android
После поворота экрана view формы пропадают Android
Android В чем разница (View view) и (View v)
Android Не могу заставить OnItemClickListener, ловить нажатие на элемент списка ListView
Android Как после удаления view компонентов (removeAllViews) вернуть их?
Public void onClick(View view) Android
Как обновить Recycle View после добавления нового элемента в БД? Используется Cursor Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
16.02.2014, 18:44     После setVisibility(View.GONE) не могу сделать элемент видимым #2
почему бы не использовать FrameLayout
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
16.02.2014, 19:46  [ТС]     После setVisibility(View.GONE) не могу сделать элемент видимым #3
Цитата Сообщение от ASDFD12 Посмотреть сообщение
почему бы не использовать FrameLayout
А в чем разница?
Разместил LinearLayout внутри FrameLayout и скрываю/показываю панель.
То же самое. Пока обычная ориентация все нормально. Но после смены на ладшафт, видимая панель остается где-то за пределами экрана
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
16.02.2014, 20:39     После setVisibility(View.GONE) не могу сделать элемент видимым #4
можешь дать исходники

Добавлено через 4 минуты
если не критично можешь запретить смену ориентации
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
17.02.2014, 00:33  [ТС]     После setVisibility(View.GONE) не могу сделать элемент видимым #5
Вероятно дело в том, что объект, занимающий экран - fragment, на который выводится карта.
Я даже попробовал его положить в LinearLayout и к этому лайоут применил GONE. Карта не исчезла и продолжала занимать всю область.

Цитата Сообщение от ASDFD12 Посмотреть сообщение
если не критично можешь запретить смену ориентации
Смену ориентации запретить не могу.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
17.02.2014, 23:57     После setVisibility(View.GONE) не могу сделать элемент видимым #6
Цитата Сообщение от Slon747 Посмотреть сообщение
Как исправить?
А какой у вас код layout'a ?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
18.02.2014, 00:34  [ТС]     После setVisibility(View.GONE) не могу сделать элемент видимым #7
Цитата Сообщение от Digetix Посмотреть сообщение
А какой у вас код layout'a ?
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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">
 
    <fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">
    </fragment>
 
 
    <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/horizontalScrollView"
            android:fillViewport="true">
 
        <LinearLayout
                android:id="@+id/panelTools"
                style="@style/PanelTools">
 
            <Button
                    android:id="@+id/btnMapType"
                    android:layout_height="48dp"
                    android:layout_width="wrap_content"
                    android:layout_marginTop="2dp"
                    android:layout_gravity="center"
                    android:text="@string/MapType"
                    android:onClick="btnClick"/>
 
        </LinearLayout>
 
</HorizontalScrollView>
 
</LinearLayout>
В panelTools кнопок больше, тут для краткости оставил одну.
Хочу при ладшафте скрывать нижнюю панель с кнопками, чтобы не занимать пространство карты,
а прикасании карты в onMapClick(LatLng point) возвращать панель.
В обычной ориентации скрывается и показывается без проблем.
Но стоит повернуть на бок, как скрывается, но не показывается (хотя getVisibility() говорит, что видимое).

Экспериментировал так.
По таймеру скрывал/показывал - работает.
Далее по таймеру скрывал, при касании взводил признак, что в следующий раз нужно показать панель
и по таймеру же пытался показать. В ландшафте опять карта на весь экран.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.02.2014, 23:50     После setVisibility(View.GONE) не могу сделать элемент видимым #8
Цитата Сообщение от Slon747 Посмотреть сообщение
Но стоит повернуть на бок
А в манифесте писали, чтоб активити не перерисовывать при смене ориентации?
Пробовали скрывать HorizontalScrollView, а не слой с кнопками?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 00:34     После setVisibility(View.GONE) не могу сделать элемент видимым
Еще ссылки по теме:

Android Скрыть элемент View после ввода логина и пароля на другом активити
После подключения ListViewAnimations не могу собрать проект Android
SetVisibility не работает для RadioGroup Android
Android Как сделать View "не прозрачным" для кликов
Android Layout, button, setVisibility

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

Или воспользуйтесь поиском по форуму:
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 420
19.02.2014, 00:34  [ТС]     После setVisibility(View.GONE) не могу сделать элемент видимым #9
Цитата Сообщение от Digetix Посмотреть сообщение
Пробовали скрывать HorizontalScrollView, а не слой с кнопками?
Пробовал, не помогло.

Цитата Сообщение от Digetix Посмотреть сообщение
А в манифесте писали, чтоб активити не перерисовывать при смене ориентации?
Ой. Я только что прописал это, но совсем по другой причине.
Сейчас попробовал фокус с панелью - помогло.
Большое спасибо!
Yandex
Объявления
19.02.2014, 00:34     После setVisibility(View.GONE) не могу сделать элемент видимым
Ответ Создать тему
Опции темы

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