Сделать объект невидимым android studio

Android — сделать TextView невидимым

Когда мое приложение запускается, пользователь должен коснуться экрана, прежде чем начнется настоящее действие. У меня есть textView , который дает подсказку коснуться экрана.

После касания экрана я хочу, чтобы текст стал невидимым . Прямо сейчас textView никогда не исчезает и всегда остается впереди.

6 ответов

1. Всегда используйте if(something) , если хотите узнать, является ли он true/false , вместо того, чтобы писать if(something == true) [что-то является логическим значением, которому присвоено значение true.]

2. Если вы укажете свои представления XML на метод, используя android:onClick , как показано ниже,

, Какой смысл реализовывать OnGestureListener ?

Если я делаю это onCreate , я инициализирую свое мнение

3. Если я действительно хочу прикосновение, я сделаю это

  1. Теперь вы можете видеть в третьем параметре есть MotionEvent , вы можете идентифицировать движение ACTION_DOWN , ACTION_MOVE и ACTION_UP

Теперь подумайте, использовали ли вы их когда-либо. У вас в голове возникла идея касания, поэтому вы пытались использовать события касания. Но вы ими не пользуетесь. Так что он делает то же, что и onClickListner в вашем случае. Если хотите движения, используйте третий, который я дал.

Но просто вы можете использовать

Те, кто просматривает onClickListner или setOnTouchListener , вы можете напрямую использовать их внутри onCreate или хранить их внутри метода, и вы можете вызывать этот метод из onCreate . Зачем хранить логическое значение? Ничего особенного

Обратите внимание, что я рассматривал myView как макет фона, а не textView, фон — тот, который вы нажимаете / касаетесь

Вы проверяете, коснулся ли экран в onCreate() , который вызывается только один раз в начале действия. Инициализируйте TextView глобально и установите его видимость внутри onTouch(View v, MotionEvent event) Также ваш onTouch() не верен. Вы должны переопределить public boolean onTouch(View v, MotionEvent event)

Вместо реализации OnGestureListener добавьте setOnTouchListener в ваше корневое представление вашего макета активности

Например, rlTestView — это идентификатор корневого макета вашей деятельности, затем используйте приведенный ниже код в своем методе oncreate .

Итак, теперь вы несколько раз меняли код вопросов, и я надеюсь, что это последнее изменение. Только чем мог помочь мой ответ.

Вы сделали это в своем onCreate() :

Но это выполняется напрямую и не имеет ничего общего с вашим методом onTouch() . Давайте предположим, что ваш onTouch() работает правильно. Сделайте TextView глобальным :

Инициализировать его в onCreate() :

А затем спрятать его в onTouch() :

Но вы должны быть уверены, что ваш метод onTouch() работает. Вы можете сделать Toast или Журнал для проверки. Вы должны быть уверены, что:

— TextView находится внутри вашего макета XML, который вы установили с помощью setContentView(R.layout.activity_game);

— Метод onTouch() объявлен в атрибуте xml вашего TextView

И установите для clickable вашего TextView значение true:

РЕДАКТИРОВАТЬ

Если вы реализуете onGestureListener() , я полагаю, что событие касания используется слушателем, и ваш TextView не распознал onTouch() . Если вы не обнаруживаете жесты в своей деятельности, удалите эту реализацию.

Используйте приведенный ниже код для метода onCreate и установите yes visibility вместо GONE вместо невидимого. Также укажите текущее значение visibilty для TextView в onTouch и установите для него значение

Читайте также:  Графический файл для android

Источник

Русские Блоги

Разница между атрибутами видимости VISIBLE, INVISIBLE и GONE в Android

В разработке для Android большинство элементов управления имеют атрибут видимости, а есть три атрибута: «видимый», «невидимый» и «пропавший». В основном используется для настройки отображения и скрытия элементов управления. Некоторые люди могут задаться вопросом, в чем разница между невидимым и ушедшим? ? ? Итак, с этим вопросом мы смотрим на следующее:

Это устанавливается следующим образом в файле XML и коде Java:

Видимый (видимый)

XML-файл: android: visibility = «visible»

Java-код: view.setVisibility (View.VISIBLE);

Невидимый (невидимый)

XML-файл: android: visibility = «invisible»

Java-код: view.setVisibility (View.INVISIBLE);

Спрятаться

XML-файл: android: visibility = «ушел»

Java-код: view.setVisibility (View.GONE);

Чтобы различить три, я построил Купол для демонстрации, сначала перейдем к кодексу Купола, после демонстрации я знаю разницу между ними:

  1. xml version = «1.0» encoding = «utf-8» ?>
  2. LinearLayout xmlns:android = «http://schemas.android.com/apk/res/android»
  3. android:layout_width = «fill_parent»
  4. android:layout_height = «fill_parent»
  5. android:orientation = «vertical» >
  6. LinearLayout
  7. android:layout_width = «fill_parent»
  8. android:layout_height = «wrap_content»
  9. android:orientation = «horizontal»
  10. android:layout_marginBottom = «20dip» >
  11. TextView
  12. android:layout_width = «wrap_content»
  13. android:layout_height = «wrap_content»
  14. android:layout_weight = «1»
  15. android:background = «#F00»
  16. android:text = «TextView1»
  17. android:textSize = «23sp»
  18. android:visibility = «visible»/>
  19. TextView
  20. android:id = «@+id/mainTV2»
  21. android:layout_width = «wrap_content»
  22. android:layout_height = «wrap_content»
  23. android:layout_weight = «1»
  24. android:background = «#00F»
  25. android:text = «TextView2»
  26. android:textSize = «23sp»
  27. android:visibility = «visible»/>
  28. LinearLayout >
  29. Button
  30. android:id = «@+id/mainBtn1»
  31. android:layout_width = «fill_parent»
  32. android:layout_height = «wrap_content»
  33. android:text = «TextView2 ВИДИМ»
  34. android:onClick = «mianOnClickListener»/>
  35. Button
  36. android:id = «@+id/mainBtn2»
  37. android:layout_width = «fill_parent»
  38. android:layout_height = «wrap_content»
  39. android:text = «TextView2 невидим»
  40. android:onClick = «mianOnClickListener»/>
  41. Button
  42. android:id = «@+id/mainBtn3»
  43. android:layout_width = «fill_parent»
  44. android:layout_height = «wrap_content»
  45. android:text = «TextView2 ушел»
  46. android:onClick = «mianOnClickListener»/>
  47. LinearLayout >

Пока последние три кнопки являются атрибутами, которые контролируют видимость TextView

  1. package com.chindroid.visibility;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.TextView;
  6. public class MainActivity extends Activity <
  7. /** TextView2 */
  8. private TextView mainTV2 = null ;
  9. @Override
  10. public void onCreate(Bundle savedInstanceState) <
  11. super .onCreate(savedInstanceState);
  12. setContentView(R.layout.main);
  13. // Инициализируем данные
  14. initData();
  15. >
  16. / ** Метод инициализации контроля * /
  17. private void initData() <
  18. mainTV2 = (TextView)findViewById(R.id.mainTV2);
  19. >
  20. /**
  21. Метод реагирования на событие нажатия кнопки в MainActivity
  22. *
  23. * @param v
  24. */
  25. public void mianOnClickListener(View v) <
  26. switch (v.getId()) <
  27. case R.id.mainBtn1: < // Событие ответа кнопки 1
  28. // Установить TextView2 как видимый
  29. mainTV2.setVisibility(View.VISIBLE);
  30. break ;
  31. >
  32. case R.id.mainBtn2: < // Событие ответа кнопки 2
  33. // Установить TextView2 как невидимый
  34. mainTV2.setVisibility(View.INVISIBLE);
  35. break ;
  36. >
  37. case R.id.mainBtn3: < // Ответное событие кнопки 3
  38. // Установить TextView2, чтобы скрыть
  39. mainTV2.setVisibility(View.GONE);
  40. break ;
  41. >
  42. default :
  43. break ;
  44. >
  45. >
  46. >

При запуске программы оба TextViews видны

Когда мы нажимаем первую кнопку и устанавливаем для свойства TextView2visibility значение INVISIBLE, процедура выглядит следующим образом:

Когда мы нажимаем третью кнопку и устанавливаем свойство TextView2visibility в GONE, процедура выглядит следующим образом:

Когда мы снова нажмем первую кнопку и установим свойство TextView2visibility в VISIBLE, TextView2 снова будет представлен, как показано на следующем рисунке:

VISIBLE: сделать элемент управления видимым

Невидимый: установите элемент управления невидимым

GONE: установить контроль, чтобы скрыть

Основное различие между INVISIBLE и GONE заключается в следующем: когда свойство видимости элемента управления равно INVISIBLE, интерфейс резервирует пространство, занимаемое элементом управления view, а когда свойство элемента управления равно GONE, интерфейс не сохраняет пространство, занимаемое элементом управления view.

Источник

Сделать кнопку невидимой после нажатия

После нажатия на кнопку она исчезает
Здравствуйте! Я никак не могу сделать так, чтобы при нажатии на кнопку она уменьшалась в.

Крашится программа после нажатия на кнопку
Когда нажимаю на клавишу button2 крашится программа в чем проблема? public class Main3Activity.

Метод вызывается только после второго нажатия на кнопку
есть метод import com.github.nkzawa.emitter.Emitter; import.

После нажатия на кнопку TBitBtn сделать кнопку не действующей
Как после нажатия на кнопку bitbtn1 кнопка становилась не действушей

Читайте также:  Thumbnail cache file android что это

Теперь вроде все норм, кроме. еще одной ошибки: Session ‘app’: Error Installing APK

Добавлено через 8 минут
Хотя все никак не смогу задушить жабу (Unfortunately, //название программы// has stopped.)

Текущий код:
(Main_Activity.java)

Сделать кнопку недоступной после нажатия на определённое время
Товарищи, как сделать чтобы после нажатии кнопки она стала недоступной в течении, например, 10.

Как сделать элементы неактивными после нажатия на кнопку
Добрый день. Необходимо составить программу тест по истории. Проблема в том, что после нажатия на.

Сделать кнопку невидимой
Добрый вечер. В Qt совсем недавно, занимаюсь переделкой одной программки и возникла такая проблема.

Как сделать кнопку невидимой
Сделал БитБтн невидимым visible=false и сверху с помощью Timage поставил картинку, нужно чтобы.

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

Сделать невидимой кнопку меню
Как сделать чтобы в зависимости от авторизовавшегося пользователя становились видимыми и невидимыми.

Источник

Как я могу удалить кнопку или сделать ее невидимой в Android?

Как удалить кнопку на Android или сделать ее невидимой?

Установите видимость кнопки на GONE (кнопка будет полностью «удалена» – пространство кнопок будет доступно для других виджетов) или INVISIBLE (кнопка станет «прозрачной» – ее пространство не будет доступно для других виджетов):

Сначала сделайте кнопку невидимой в xml-файле. Затем установите кнопку, видимую в java-коде, если это необходимо.

Чтобы удалить кнопку в java-коде :

Для прозрачной кнопки в java-коде :

Чтобы удалить кнопку в файле Xml :

К прозрачной кнопке в файле Xml :

Это представление невидимо, и оно не требует места для компоновки.

Но если вы просто хотите сделать его невидимым:

Использовать setVisibility в кнопке или изображенииViwe или …..
Чтобы удалить кнопку в java-коде:

К прозрачной кнопке в java-коде

Вы должны сделать вам xml-код кнопки, как показано ниже:

скрытых:
Видимость: нет
показать:
Видимость: невидимая
Видимость: видимая

Делает это видимым, если невидимым и невидимым, если видимо

Чтобы полностью удалить кнопку из родительского макета:

Элементы управления просмотром (TextView, EditText, Button, Image и т. Д.) Имеют свойство видимости. Это может быть установлено в одно из трех значений:

Видимый – отображается

Невидимый – скрытый, но зарезервированный

Gone – Скрыто полностью

Чтобы установить видимость в коде, используйте общедоступную константу, доступную в статическом классе View:

Источник

Полный список

— динамически работаем с фрагментами

Размещать статические фрагменты мы уже умеем. Но, ясно дело, что гораздо интереснее работать с ними динамически. Система позволяет нам добавлять, удалять и заменять фрагменты друг другом. При этом мы можем сохранять все эти манипуляции в BackStack и кнопкой Назад отменять. В общем, все удобно и красиво.

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

— добавлять первый фрагмент
— удалять первый фрагмент
— заменять первый фрагмент вторым фрагментом
— переключать режим сохранения в BackStack операций с фрагментами

Project name: P1051_FragmentDynamic
Build Target: Android 4.1
Application name: FragmentDynamic
Package name: ru.startandroid.develop.p1051fragmentdynamic
Create Activity: MainActivity

В strings.xml добавим строки:

Создаем фрагменты. Как мы помним из прошлого урока, для этого нам нужны будут layout-файлы и классы, наследующие android.app.Fragment

Все почти аналогично прошлому уроку, только убрали вызовы кучи lifecycle методов с логами.

Рисуем основное Activity.

Три кнопки для добавления, удаления и замены фрагментов. Чекбокс для включения использования BackStack. И FrameLayout – это контейнер, в котором будет происходить вся работа с фрагментами. Он должен быть типа ViewGroup. А элементы Fragment, которые мы использовали на прошлом уроке для размещения фрагментов, нам не нужны для динамической работы.

Читайте также:  Dark birthday для андроид

В onCreate создаем пару фрагментов и находим чекбокс.

В onClick мы получаем менеджер фрагментов с помощью метода getFragmentManager. Этот объект является основным для работы с фрагментами. Далее, чтобы добавить/удалить/заменить фрагмент, нам необходимо использовать транзакции. Они аналогичны транзакциям в БД, где мы открываем транзакцию, производим операции с БД, выполняем commit. Здесь мы открываем транзакцию, производим операции с фрагментами (добавляем, удаляем, заменяем), выполняем commit.

Итак, мы получили FragmentManager и открыли транзакцию методом beginTransaction. Далее определяем, какая кнопка была нажата:

если Add, то вызываем метод add, в который передаем id контейнера (тот самый FrameLayout из main.xml) и объект фрагмента. В итоге, в контейнер будет помещен Fragment1

если Remove, то вызываем метод remove, в который передаем объект фрагмента, который хотим убрать. В итоге, фрагмент удалится с экрана.

если Replace, то вызываем метод replace, в который передаем id контейнера и объект фрагмента. В итоге, из контейнера удалится его текущий фрагмент (если он там есть) и добавится фрагмент, указанный нами.

Далее проверяем чекбокс. Если он включен, то добавляем транзакцию в BackStack. Для этого используем метод addToBackStack. На вход можно подать строку-тэг. Я передаю null.

Ну и вызываем commit, транзакция завершена.

Давайте смотреть, что получилось. Все сохраняем, запускаем приложение.

появился первый фрагмент.

Еще раз добавим первый фрагмент – жмем Add. И жмем Replace

первый фрагмент заменился вторым.

Жмем кнопку Назад. Приложение закрылось, т.к. все эти операции с фрагментами не сохранялись в BackStack. Давайте используем эту возможность.

Снова запускаем приложение и включаем чекбокс add to Back Stack

Выполняем те же операции: Add, Remove, Add, Replace. У нас добавится первый фрагмент, удалится первый фрагмент, добавится первый фрагмент, заменится вторым. В итоге мы снова видим второй фрагмент. Теперь жмем несколько раз кнопку Назад и наблюдаем, как выполняются операции, обратные тем, что мы делали. Когда транзакции, сохраненные в стеке закончатся, кнопка Назад закроет приложение.

Т.е. все достаточно просто и понятно. Скажу еще про пару интересных моментов.

Я в этом примере выполнял всего одну операцию в каждой транзакции. Но, разумеется, их может быть больше.

Когда мы удаляем фрагмент и не добавляем транзакцию в BackStack, то фрагмент уничтожается. Если же транзакция добавляется в BackStack, то, при удалении, фрагмент не уничтожается (onDestroy не вызывается), а останавливается (onStop).

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

На следующем уроке:

— рассмотрим взаимодействие между Activity и ее фрагментами

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Оцените статью