- Русские Блоги
- Разница между атрибутами видимости VISIBLE, INVISIBLE и GONE в Android
- Видимость объектов Android
- How to check the visibility of software keyboard in Android?
- Полезные инструменты в Android Studio
- Наполнение лэйаута тестовыми данными
- Автоинкремент версии и изменение имени билда
- Создание различных вариантов сборки
- Пипетка
- Просмотр истории блока кода
Русские Блоги
Разница между атрибутами видимости 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);
Чтобы различить три, я построил Купол для демонстрации, сначала перейдем к кодексу Купола, после демонстрации я знаю разницу между ними:
- xml version = «1.0» encoding = «utf-8» ?>
- LinearLayout xmlns:android = «http://schemas.android.com/apk/res/android»
- android:layout_width = «fill_parent»
- android:layout_height = «fill_parent»
- android:orientation = «vertical» >
- LinearLayout
- android:layout_width = «fill_parent»
- android:layout_height = «wrap_content»
- android:orientation = «horizontal»
- android:layout_marginBottom = «20dip» >
- TextView
- android:layout_width = «wrap_content»
- android:layout_height = «wrap_content»
- android:layout_weight = «1»
- android:background = «#F00»
- android:text = «TextView1»
- android:textSize = «23sp»
- android:visibility = «visible»/>
- TextView
- android:id = «@+id/mainTV2»
- android:layout_width = «wrap_content»
- android:layout_height = «wrap_content»
- android:layout_weight = «1»
- android:background = «#00F»
- android:text = «TextView2»
- android:textSize = «23sp»
- android:visibility = «visible»/>
- LinearLayout >
- Button
- android:id = «@+id/mainBtn1»
- android:layout_width = «fill_parent»
- android:layout_height = «wrap_content»
- android:text = «TextView2 ВИДИМ»
- android:onClick = «mianOnClickListener»/>
- Button
- android:id = «@+id/mainBtn2»
- android:layout_width = «fill_parent»
- android:layout_height = «wrap_content»
- android:text = «TextView2 невидим»
- android:onClick = «mianOnClickListener»/>
- Button
- android:id = «@+id/mainBtn3»
- android:layout_width = «fill_parent»
- android:layout_height = «wrap_content»
- android:text = «TextView2 ушел»
- android:onClick = «mianOnClickListener»/>
- LinearLayout >
Пока последние три кнопки являются атрибутами, которые контролируют видимость TextView
- package com.chindroid.visibility;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.TextView;
- public class MainActivity extends Activity <
- /** TextView2 */
- private TextView mainTV2 = null ;
- @Override
- public void onCreate(Bundle savedInstanceState) <
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // Инициализируем данные
- initData();
- >
- / ** Метод инициализации контроля * /
- private void initData() <
- mainTV2 = (TextView)findViewById(R.id.mainTV2);
- >
- /**
- Метод реагирования на событие нажатия кнопки в MainActivity
- *
- * @param v
- */
- public void mianOnClickListener(View v) <
- switch (v.getId()) <
- case R.id.mainBtn1: < // Событие ответа кнопки 1
- // Установить TextView2 как видимый
- mainTV2.setVisibility(View.VISIBLE);
- break ;
- >
- case R.id.mainBtn2: < // Событие ответа кнопки 2
- // Установить TextView2 как невидимый
- mainTV2.setVisibility(View.INVISIBLE);
- break ;
- >
- case R.id.mainBtn3: < // Ответное событие кнопки 3
- // Установить TextView2, чтобы скрыть
- mainTV2.setVisibility(View.GONE);
- break ;
- >
- default :
- break ;
- >
- >
- >
При запуске программы оба TextViews видны
Когда мы нажимаем первую кнопку и устанавливаем для свойства TextView2visibility значение INVISIBLE, процедура выглядит следующим образом:
Когда мы нажимаем третью кнопку и устанавливаем свойство TextView2visibility в GONE, процедура выглядит следующим образом:
Когда мы снова нажмем первую кнопку и установим свойство TextView2visibility в VISIBLE, TextView2 снова будет представлен, как показано на следующем рисунке:
VISIBLE: сделать элемент управления видимым
Невидимый: установите элемент управления невидимым
GONE: установить контроль, чтобы скрыть
Основное различие между INVISIBLE и GONE заключается в следующем: когда свойство видимости элемента управления равно INVISIBLE, интерфейс резервирует пространство, занимаемое элементом управления view, а когда свойство элемента управления равно GONE, интерфейс не сохраняет пространство, занимаемое элементом управления view.
Источник
Видимость объектов Android
Я сделал много поиска, но не могу найти разницу между tools:visibility = «visible» и android:visibility = «visible» ? В какой ситуации я должен использовать инструменты или андроид?
Вот простое объяснение:
tools:visibility = «visible» используется для управления видимостью просмотра на IDE. Это не влияет на представление в реальном времени. Оно просто используется для целей проектирования в Android Studio
в то время как
android:visibility = «visible» – это фактический код, который будет выполнен во время выполнения и внесет изменения в ваши представления
Tools: атрибуты вносят вклад в предварительный просмотр времени проектирования при редактировании макетов, а
Android: фактически влияет на то, как он будет отображаться на самом устройстве.
Вы можете найти дополнительную информацию здесь и здесь .
Значения TOOLS будут использоваться только в предварительном просмотре макета в Android Studio.t
Значения ANDROID будут использоваться в приложении как обычно.
Поэтому, если вы задаете значения для основного контейнера: tools: visibility: «go» android: visibility: «visible»
Основной контейнер в представлении макета в AS исчезнет, но если вы запустите приложение на эмуляторе / устройстве, он будет виден.
Если вы видите атрибуты компоновки времени разработки
Пространство имен инструментов является специально признанным пространством имен инструментами Android, поэтому все атрибуты, которые вы определяете для элементов вида в пространстве имен tools, будут автоматически удалены, когда приложение будет упаковано, а накладные расходы не будут выполняться.
Поэтому, если нам нужно что-то тестировать в редакторе макетов только во время разработки, которое не влияет на время выполнения, мы можем использовать пространство имен tools .
Пример:
Если вышеуказанный макет отображается в представлении дизайнера Android Studio, первая кнопка будет невидимой. Но во время работы это будет видно.
Точный вопрос должен быть
«Какая разница между android. и tools. на XML-файлах Layout»
Инструменты являются одним из атрибутов проектирования, которые могут облегчить создание макета в XML в рамках разработки. Этот атрибут используется для отображения структуры разработки, какой класс активности выбран для реализации макета. Используя «tools: context», Android Studio автоматически выбирает нужную тему для предварительного просмотра
Android используется во время выполнения приложения, когда вы запускаете apk в устройстве
Источник
How to check the visibility of software keyboard in Android?
Keyboards are one of the basic elements of any Android application. Usually, we use keyboards for taking inputs from the user. These keyboards that are used in the Android application are called soft keyboards and Android system provides you keyboard for taking input from the user in any EditText or something like that. Also, if the user has given the input then that keyboard will be made invisible from the screen. So, in this blog, we will learn how to check if the software keyboard is visible in the Android application or not. If it is visible then how to make this keyboard invisible or how to close the keyboard. So, let’s get started.
Create a new project in Android Studio and name it as per your choice. In my case, I am using HideKeyboard as the name of my project.
As always, after creating a project in Android studio, our next task is to add the UI of the application. So, in the activity_main.xml file, add the below code:
After writing the code for the UI part now let’s move on to the logic part of the application.
So, here we will use the concept of viewTreeObserver. With the help of viewTreeObserver, we can find if there is some change in the viewGroup in a particular activity or not. After that, we can find the height of the current screen and then the height of the keyboard and by using this height we can determine if the keyboard is visible or not. So, let’s look at the code of the MainActivity.kt file:
Here, we are using hideSoftKeyboard to hide the keyboard if the keyboard is visible on clicking the button.
So, finally, run the application and see the output on your mobile device.
In this blog, we learned how to check if the keyboard is visible or not on the screen. Also, we have if the keyboard is visible then how to close it. That’s it for this blog.
To learn more on some cool Android topics, you can refer to MindOrks blogging website.
Источник
Полезные инструменты в Android Studio
Прошло уже достаточно много времени с момента презентации Android Studio и наверняка у многих накопилось много знаний, нюансов и фишек, используемых часто в работе. Этим и хочется поделиться. Я начну, а вы продолжите…
- SSD
- Наполнение лэйаута тестовыми данными
- Автоинкремент версии и изменение имени билда
- Создание различных вариантов сборки
- Пипетка
- Просмотр истории блока кода
Сборщик Gradle собирает долго. Если на простом проекте время сборки занимает до 10 секунд, то на большом, со множеством модулей — до двух минут. С учётом того, что за день работы проект собирается десятки раз в день, выходит большая утечка времени и появляется раздражительность (комп иногда уходит в ANR, даже браузером невозможно пользоваться). Проблема решается просто — переходом обратно на Эклипс установкой SSD накопителя. Цена вопроса — 100$. Profit — плюс 5-25 минут в день.
Результаты моего тестирования SSD:
1. ANR винды пропали
2. Время сборки сложных проектов уменьшилось от максимум двух минут до максимум 20 секунд.
3. Покупка SSD позволяет безболезненно использовать genymotion в связке со студией.
Сравнение скоростей работы HDD(сверху) и SSD(снизу), подключенного через SATA 1:
Наполнение лэйаута тестовыми данными
Префикс «tools:» помимо линтовских функций позволяет наполнять лэйаут тестовым данными без последствий для приложения. «Все, что происходит в Вегасе, остается в Вегасе». Всё, что отмечено данным префиксом, отображается в лэйауте и удаляется во время сборки.
Возможны даже такие вещи:
Более подробно здесь — tools.android.com/tips/layout-designtime-attributes.
Ознакомиться с дополнительными возможностями по использованию префикса «tools:» можно здесь — tools.android.com/tech-docs/tools-attributes.
Автоинкремент версии и изменение имени билда
Далее остаётся запустить команду release главного модуля проекта.
Создание различных вариантов сборки
Думаю один из самых простых и популярных вариантов использование данной возможности это создание бесплатной и платной версии приложения или версии под релизный и тестовый сервер.
Ниже пример на данную тему
Указываем варианты сборки — free и paid, и соответствующие параметры в build.gradle
В случае релизного и тестового сервера:
Затем создаём папки в src с соответствующими названиями. Получится следующая структура проекта:
В ресурсах указываем различающиеся данные. Например, различные ключи для google analytics, crittercism, google backup service и пр.
В коде делаем проверки на BuildConfig.PAID для реализации логики.
Пипетка
Пипетка позволяет узнать код цвета с любой области на экране. Многие её просто не замечают и пользуются пэйнтом для того, чтобы узнать код цвета с картинки. Обратите внимание на левый верхний угол. Данная диаложка вызывается из colors.xml при клике по цвету.
Просмотр истории блока кода
Согласитесь, стандартная ситуация при работе в команде. Не знаю, как давно существует данное решение и есть ли оно в эклипсе, но вещь действительно полезная:
Источник