Как скрыть кнопку в android studio
Перейти к содержимому

Как скрыть кнопку в android studio

  • автор:

Скрыть сенсорные кнопки android studio

Добрый день! Подскажите пожалуйста, не могу найти информацию о скрытии сенсорных кнопок в android studio.

Кнопки, как onBackPressed.

Как можно реализовать, чтобы появлялись только при нажатии на экран? Подскажите пожалуйста, где найти урок!

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Зажатие кнопки в Android Studio
Приветствую! Пытаюсь сделать 2D игрушку на Android Studio. Как можно проверять, что кнопка.

Расползаются кнопки в android studio
Здравствуйте. На скринах выделил при разных ориентациях кнопки куда то уползают. Не разобрался хоть.

Не скрываются сенсорные кнопки в приложениях
Вечер добрый. У меня xperia m2 5.1.1. Суть проблемы: Не скрываются сенсорные кнопки в приложениях. .

Как изменить 2 переменные при нажатии 1 кнопки? Android studio
Доброго времени суток. Имеется вот такой вот кусок программы. Задача стоит в том, чтобы после.

Регистрация: 22.03.2011
Сообщений: 69

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

При таком раскладе он становиться прозрачным, но кнопки остаются:

1 2 3 4 5 6
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }

Тоже делает прозрачным кнопки
Не добавляю!

WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS

Как сделать кнопку неактивной после нажатия, или скрыть её (Android)

Как по мне наглядней будет button.setEnabled(false); Кнопка становится серой (не активной) соответственно и не кликабельной.

Отслеживать
ответ дан 10 дек 2016 в 19:54
Eugene Zaychenko Eugene Zaychenko
1,940 9 9 серебряных знаков 17 17 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Панель навигации

В Android 4.0 (точнее в Android 3.0) появилась новая панель навигации. Рассмотрим несколько примеров взаимодействия с этой панелью. Как включить панель навигации в эмуляторе написано здесь.

Следует обратить внимание на следующие вещи. Первое — поведение панели навигации на планшетах под управлением Android 3.0 немного отличается от панели навигации для устройств под управлением Android 4.0 и представленный код может не работать. Второй момент — многие брендированные телефоны имеют собственную прошивку, в которой не предусмотрена панель навигации. Яркий пример — мой Galaxy SII. Учитывайте эти факты при разработке своих приложений.

Прячем системные кнопки навигации

Чтобы скрыть системную панель навигации с кнопками Home, Back, можно использовать код:

 getWindow(). getDecorView(). setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

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

Прячем или затемняем панель навигации

Способов управления панелью навигации не так уж и много. Точнее их всего три. Мы можем скрыть панель или затемнить её (рекомендуется использовать в играх, чтобы не отвлекала). Управляется поведение панели при помощи метода setSystemUiVisibility(), который применим к элементам View. Например, мы можем запустить приложение с скрытой панелью, но как только мы коснёмся экрана (приложение получит фокус), то панель сразу появится. Для эффекта затемнения мы приготовим кнопку. Третий способ показа панели использовать не будем, так как она и так появляется без явного вызова метода.

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

 package ru.alexanderklimov.navigationbar; import . public class NavBarAppActivity extends Activity < ImageView myImageView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.main); myImageView = (ImageView) findViewById(R.id.myimageview); // прячем панель навигации при запуске myImageView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); >public void onClick(View v) < // затемняем панель навигации myImageView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); >> 

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

Если говорить о затемнении, то приглушается не только панель навигации, но и строка состояния над заголовком, чтобы усилить фокус на самом приложении. Перепишем код для включения/выключения эффекта

 public void onClick(View v) < int currentVis = v.getSystemUiVisibility(); int newVis; if ((currentVis & View.SYSTEM_UI_FLAG_LOW_PROFILE) == View.SYSTEM_UI_FLAG_LOW_PROFILE) < newVis = View.SYSTEM_UI_FLAG_VISIBLE; >else < newVis = View.SYSTEM_UI_FLAG_LOW_PROFILE; >v.setSystemUiVisibility(newVis); > 

Сначала мы узнаём текущие настройки с помощью метода getSystemUiVisibility(), а затем устанавливаем новые настройки.

Панель навигации Панель навигацииПанель навигации

Кстати, вы заметили, что на картинке два кота? Эх, вы. (источник)

При затемнении и скрытии мы использовали элемент ImageView в качестве компонента, который управляет флагами видимости. Сейчас в официальной документации используется другой пример, когда используется объект View, получаемый через метод getWindow().getDecorView(), хотя в комментариях говорится, что можно использовать и старый способ. Сейчас мы рассмотрим этот пример, заодно покажу, как сбросить все флаги. Для примера достаточно двух кнопок.

 package ru.alexanderklimov.test; import . public class MainActivity extends Activity < View decorView; int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(uiOptions); >// Щелчок первой кнопки public void onClick(View v) < decorView.setSystemUiVisibility(uiOptions); >// Щелчок второй кнопки public void onClick2(View v) < // вызов setSystemUiVisibility() с значением 0 // очистит все флаги decorView.setSystemUiVisibility(0); >> 

При нажатии первой кнопки панель навигации и строка состояния затемнятся, а при нажатии на вторую кнопку снова появятся.

Прячем строку состояния

Отталкиваясь от последнего примера, рассмотрим случай, когда мы хотим скрыть строку состояния, чтобы получить приложение на весь экран. Для этого нам нужно использовать флаг SYSTEM_UI_FLAG_FULLSCREEN. Такой способ рекомендуется использовать на Android 4.1 и выше. Пример для старых версий описывать не буду, ищите в документации.

 public void onClick(View v) < // во весь экран decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); >

После нажатия на кнопку, самая верхняя полоска исчезнет и заголовок приложения сдвинется вверх.

Если хотите скрыть и заголовок приложения, то добавьте ещё две строчки кода:

 // При необходимости можете скрыть и заголовок приложения ActionBar actionBar = getActionBar(); actionBar.hide(); 

Можно объединять флаги, например, можем скрыть панель навигации и строку состояния одновременно:

 public void onClick(View v) < int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; // прячем панель навигации и строку состояния decorView.setSystemUiVisibility(uiOptions); >

Следует помнить, что любое нажатие в области экрана заставит появиться панель навигации и строку состояния снова. Также имейте в виду, что когда пользователь нажмёт на кнопку HOME, а потом вернётся в ваше приложение, то панель и строка состояния будут видны, если вы расположение метод скрытия в метод onCreate(), который просто не сработает при возвращении. Поэтому используйте методы onResume() или onWindowFocusChanged().

Перекрыть разметку

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

 // onCreate() getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); setContentView(R.layout.activity_main); 

Урок 4. Kotlin. Обработка нажатия кнопок и взаимодействие с view в android

Продолжаем курс по разработке андроид-приложений на языке Kotlin для начинающих программистов.

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

Автоматический импорт

Перед добавлением поведения к кнопкам необходимо включить автоматический импорт, чтобы Android Studio автоматически импортировала все классы, необходимые для кода Котлин.

  1. В Android Studio откройте Редактор настроек. Перейдите к File >Other Settings >Default Settings. Урок 4. Kotlin. Обработка нажатия кнопок и взаимодействие с view в android
  2. Выберите Auto Imports. В разделе Java убедитесь, что пункт Add Unambiguous Imports on the fly отмечен флажком. Урок 4. Kotlin. Обработка нажатия кнопок и взаимодействие с view в android
  3. Закройте редактор настроек.

Отображение сообщения по нажатию кнопки

Урок 4. Kotlin. Обработка нажатия кнопок и взаимодействие с view в android

На этом шаге мы добавим функцию отображения тоста – короткого сообщения на экране. Функция будет выполняться при нажатии кнопки с надписью TOAST.

  1. Откройте класс MainActivity.kt. (раскройте ветвь app >java >com.example.android.myfirstapp чтобы найти MainActivity). Этот класс описывает поведение главного экрана нашего приложения.Пока что класс содержит только одну функцию, onCreate(). Функция onCreate() выполняется, когда активити стартует.
  2. Посмотрите внимательно на функцию onCreate(). Обратите внимание на вызов функции setContentView(). Эта строка устанавливает файл ресурсов activity_main.xml в качестве разметки активити главного экрана.
setContentView(R.layout.activity_main);
  1. Добавим новую функцию toastMe() в класс MainActivity. Функция toastMe() принимает один аргумент – View. Это представление, получающее событие нажатия кнопки.Функция создает и отображает всплывающее уведомление. Вот ее код:
fun toastMe(view: View) < // val myToast = Toast.makeText(this, message, duration); val myToast = Toast.makeText(this, "Hello Toast!", Toast.LENGTH_SHORT) myToast.show() >

В языке Kotlin, если явно не используется никакого модификатора доступа, то по умолчанию применяется public . Далее идет слово fun, обозначающее функцию, и ее имя. В скобках передаваемый функции аргумент – его имя и тип разделены двоеточием. Далее объявляется переменная val myToast. Словом val обозначаются переменные «только для чтения», значение которых обычно задается только один раз. Обычные изменяемые переменные обозначаются в языке Kotlin словом var. Далее переменной myToast присваивается результат вызова метода makeText java-класса Toast. Метод makeText принимает контекст, сообщение и длительность отображения тоста, и возвращает тост в переменную myToast. Тост затем отображается методом show().

Функция toastMe является примером использования java-кода в kotlin-классе.

  1. Откройте файл макета activity_main.xml и добавьте свойство android:onClick кнопкеToast. Значением свойства установите toastMe.
android:onClick="toastMe"
  1. Запустите приложение и нажмите кнопку TOAST, вы должны увидеть на экране короткое сообщение с текстом “Hellо Toast!”.

Таким образом, что для того, чтобы сделать элемент экрана интерактивным вам нужно:

  • Реализовать функцию, определяющую поведение экранного элемента при нажатии на него. Эта функция должна быть public, не возвращать никаких значений, и принимать View в качестве аргумента.
  • Установить имя функции в качестве значения свойства onClick в экранном элементе.

Реализация счетчика по нажатию кнопки Count

Урок 4. Kotlin. Обработка нажатия кнопок и взаимодействие с view в android

Функция, отображающая тост, очень проста. Она не взаимодействует с другими элементами экрана. На следующем шаге мы будем по нажатию кнопки находить и обновлять другие view-элементы экрана. Напишем функцию для кнопки Count, которая при нажатии будет увеличивать значение текстового поля на 1.

  1. В файле макета экрана определим параметр id для TextView:
  1. Отройте класс ActivityMain.kt и объявите переменную для TextView:
private lateinit var textView: TextView
  1. В методе onCreate инициализируем её:
textView = findViewById(R.id.textView)
  1. В теле класса ActivityMain.kt, добавим функцию countMe(). Эта функция будет вызываться при нажатии кнопки Count, поэтому она должна быть public, не иметь возвращаемых значений, и получать View в качестве аргумента.

fun countMe (view: View)

  1. Получаем значение текстового поля TextView.
fun countMe (view: View) < // Get the value of the text view. val countString = textView.text.toString() >
  1. Конвертируем полученное значение в число, и увеличим его на единицу.
fun countMe (view: View) < // Get the value of the text view. val countString = textView.text.toString() // Convert value to a number and increment it var count: Int = Integer.parseInt(countString) count++ >
  1. Отображаем новое значение в TextView.
fun countMe (view: View) < // Get the value of the text view. val countString = textView.text.toString() // Convert value to a number and increment it var count: Int = Integer.parseInt(countString) count++ // Display the new value in the text view. textView.text = count.toString(); >
  1. Функция готова. Теперь нужно вызвать ее при нажатии кнопки COUNT. Для этого нужно установить имя функции в качестве значения свойстваonClick кнопки в файле макета.

Запустите приложение на устройстве.

При нажатии кнопки COUNT значение текстового поля увеличивается на единицу.

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

Исходный урока код можно скачать по ссылке.

Вот ссылка на подробный справочник по языку Kotlin на русском языке – советуем с ним ознакомиться.

До встречи на следующем уроке. Всем добра)

Вам також може сподобатися

Как создать мобильное приложение на Kotlin с Jetpack Compose и Clean Architecture. Часть 3. Панель поиска Compose

Уроки создания андроид-приложений на Kotlin 0 1 439
В прошлом уроке мы закончили основной функционал андроид приложения “Книжная полка”. В этом уроке

Как создать мобильное приложение на Kotlin с Jetpack Compose, REST API и Clean Architecture. Часть 2. Слой UI

Уроки создания андроид-приложений на Kotlin 2 2 741
Продолжение урока о том, как создать мобильное приложение “Книжная полка” на языке Kotlin с

Как создать мобильное приложение на Kotlin с Jetpack Compose

Уроки создания андроид-приложений на Kotlin 0 4 664
Создаем мобильное приложение на Kotlin с Jetpack Compose и Clean Architecture MVVM: три урока

TabLayout с ViewPager2 на Kotlin

Уроки создания андроид-приложений на Kotlin 0 14 446
На прошлом уроке мы познакомились с ViewPager2 и создали андроид-приложение, в котором можно листать

ViewPager2

Уроки создания андроид-приложений на Kotlin 0 13 912

На прошлом уроке мы познакомились с нижней панелью навигации BottomNavigationView. В этом уроке реализуем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *