Back button disable android

Flutter: Disabling Android System Back Button

October 14, 2021

October 27, 2021

October 27, 2021

October 27, 2021

There might be cases where you want to programmatically disable the Android system back button on some specific screens in a Flutter application. This article shows you how to do it.

Table of Contents

What Is The Point?

To prevent the Android back button from doing its job on a screen, what we need to do is to wrap this screen within a WillPopScope widget and set the onWillPop parameter like this: Advertisements

For more clarity, please see the complete example below.

Example

App Preview

The demo app we are going to make contains 2 pages: HomePage and OtherPage. You can use the button on HomePage to navigate to OtherPage. The Android system back button is disabled so you won’t go back to HomePage when you press it. Instead, a snack bar will show up and bring a message.

Here’s how it works:

The Complete Code

Conclusion

We’ve examined a full example of using the WillPopScope widget to prevent the user from using the Android system back button on a specific screen. If you’d like to learn more modern stuff in Flutter and mobile development, take a look at the following articles:

References

You can find more information about the WIllPopScope widget and Android navigation principles in the official documentation:

Источник

Как отключить кнопку Android?

Я создал макет, который содержит две кнопки, Next и Previous. Между кнопками я генерирую некоторые динамические представления. Поэтому, когда я впервые запускаю приложение, я хочу отключить кнопку «Назад», так как предыдущих просмотров не будет. Я также хочу отключить кнопку «Далее», когда больше нет просмотров для отображения. Есть ли вообще отключить кнопки?

Читайте также:  Android google maps api location

Ты пробовал это?

Обновление: спасибо Гвен. Почти забыл, что android:clickable можно установить в макете XML, чтобы определить, можно ли нажимать кнопку или нет.

Вы не можете включить или отключить его в своем XML (так как ваш макет установлен во время выполнения), но вы можете установить, если он активируется при запуске действия с android:clickable .

Вы просто пишете одну строку кода в своей деятельности

Когда вы хотите включить ту же кнопку просто напишите

Да, это можно отключить в XML, просто используя:

В Java, если у вас есть ссылка на кнопку:

Чтобы включить / отключить кнопку, вы можете использовать:

Поскольку вы хотите отключить кнопку с самого начала, вы можете использовать button.setEnabled (false); в методе onCreate. В противном случае из XML вы можете напрямую использовать:

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

Если у вас или у кого-то возникла похожая проблема, то для меня лучше всего установить фон для рисования. Работает на любом уровне API.

В Kotlin, если вы ссылаетесь на представление кнопок с идентификатором, включите / отключите кнопку как

layout.xml

activity.kt

сначала в xml сделать кнопку как android:clickable=»false»

затем в вашем коде, внутри oncreate() метода установите свойство кнопки как

затем внутри кнопки нажмите изменить код в

НЕПРАВИЛЬНЫЙ СПОСОБ В СЛУШАТЕРЕ ИСПОЛЬЗОВАТЬ ПЕРЕМЕННЫЕ ВМЕСТО ПАРАМЕТРА .

ПРАВИЛЬНО:

РЕДАКТИРОВАТЬ: В ответ на @ jeroen-bollen

является определение интерфейса для обратного вызова , которая будет вызвана , когда вид кнопки.

с определением метода

при щелчке по представлению объект класса View выполняет обратный вызов метода onClick (), отправляя как сам параметр, поэтому нулевой параметр представления не должен появляться, если он является ошибкой утверждения, это может произойти, например, когда класс объекта View был уничтожен за это время (для пример, собранный GC) или метод был подделан из-за взлома

Читайте также:  Обновляем версию китайского андроида

немного о instanceof & null

JLS / 15.20.2. Оператор сравнения типов instanceof

Во время выполнения результат оператора instanceof равен true, если значение RelationalExpression не равно нулю и ссылка может быть приведена к ReferenceType без повышения ClassCastException.

В противном случае результат будет ложным .

три слова от автора

ЕСЛИ ты спрашиваешь, ПОЧЕМУ?

ЧТОБЫ ИЗБЕГАТЬ NullPointerException

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

рассмотрим следующий пример:

Источник

Как отключить кнопку Android?

Я создал макет, который содержит две кнопки, Next и Previous. Между кнопками я генерирую некоторые динамические представления. Поэтому, когда я впервые запускаю приложение, я хочу отключить кнопку «Назад», так как предыдущих просмотров не будет. Я также хочу отключить кнопку «Далее», когда больше нет просмотров для отображения. Есть ли вообще отключить кнопки?

Ты пробовал это?

Обновление: спасибо Гвен. Почти забыл, что android:clickable можно установить в макете XML, чтобы определить, можно ли нажимать кнопку или нет.

Вы не можете включить или отключить его в своем XML (так как ваш макет установлен во время выполнения), но вы можете установить, если он активируется при запуске действия с android:clickable .

Вы просто пишете одну строку кода в своей деятельности

Когда вы хотите включить ту же кнопку просто напишите

Да, это можно отключить в XML, просто используя:

В Java, если у вас есть ссылка на кнопку:

Чтобы включить / отключить кнопку, вы можете использовать:

Поскольку вы хотите отключить кнопку с самого начала, вы можете использовать button.setEnabled (false); в методе onCreate. В противном случае из XML вы можете напрямую использовать:

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

Читайте также:  Панель контактов для андроид

Если у вас или у кого-то возникла похожая проблема, то для меня лучше всего установить фон для рисования. Работает на любом уровне API.

В Kotlin, если вы ссылаетесь на представление кнопок с идентификатором, включите / отключите кнопку как

layout.xml

activity.kt

сначала в xml сделать кнопку как android:clickable=»false»

затем в вашем коде, внутри oncreate() метода установите свойство кнопки как

затем внутри кнопки нажмите изменить код в

НЕПРАВИЛЬНЫЙ СПОСОБ В СЛУШАТЕРЕ ИСПОЛЬЗОВАТЬ ПЕРЕМЕННЫЕ ВМЕСТО ПАРАМЕТРА .

ПРАВИЛЬНО:

РЕДАКТИРОВАТЬ: В ответ на @ jeroen-bollen

является определение интерфейса для обратного вызова , которая будет вызвана , когда вид кнопки.

с определением метода

при щелчке по представлению объект класса View выполняет обратный вызов метода onClick (), отправляя как сам параметр, поэтому нулевой параметр представления не должен появляться, если он является ошибкой утверждения, это может произойти, например, когда класс объекта View был уничтожен за это время (для пример, собранный GC) или метод был подделан из-за взлома

немного о instanceof & null

JLS / 15.20.2. Оператор сравнения типов instanceof

Во время выполнения результат оператора instanceof равен true, если значение RelationalExpression не равно нулю и ссылка может быть приведена к ReferenceType без повышения ClassCastException.

В противном случае результат будет ложным .

три слова от автора

ЕСЛИ ты спрашиваешь, ПОЧЕМУ?

ЧТОБЫ ИЗБЕГАТЬ NullPointerException

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

рассмотрим следующий пример:

Источник

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