Как имитировать нажатую кнопку в Android Studio при верстке

Вопрос задан

Изменён 3 года 3 месяца назад

Просмотрен 321 раз

Как имитировать нажатую кнопку в Android Studio при верстке не запуская приложение и не нажимая кнопку? То есть я хочу видеть сразу как меняется стиль кнопки, в зависимости от того нажата она или нет, не запуская само приложение?

  • android
  • android-studio

Вы можете это сделать через стили. Добавляем цвета:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#ffffffff</color>
    <color name="darkwhite">#ffeeeeee</color>
    <color name="transparent">#00ffffff</color>
    <color name="semitransparent">#88000000</color>
    <color name="orange">#ffff8800</color>
    <color name="light_orange">#ffe27d18</color>
    <color name="light_blue">#ff00a2e8</color>
    <color name="black">#ff000000</color>
    <color name="menuButtonColor">#ffea8e44</color>
</resources>

Далее создаем файл в папке drawable где будет описано что кнопка нажата:

<?xml version="1. 0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/light_orange" android:state_pressed="true"/>
    <item android:drawable="@color/orange"/>
</selector>

и дальше прикрепляем этот файл drawable к кнопке в xml:

<Button
    android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="58dp"
    android:text="how_it_works_button_title"
    android:background="@drawable/my_button_selector" />

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

UPDATE

Для того чтобы посмотреть на нажатую кнопку, нужно в итоге получить такой drawable файл:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@color/light_orange" android:state_pressed="true"/>
        <item android:drawable="@color/light_orange" android:state_pressed="true"/>
    </selector>

но потом не забудьте тег android:state_pressed="true" убрать в одном из item чтобы кнопка имела два состояния.

4

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

android — Как узнать какая кнопка была нажата?

Вопрос задан

Изменён 1 год 9 месяцев назад

Просмотрен 478 раз

Как в котлине можно узнать какая кнопка была нажата? Что-то типа onClick в джаве

  • android
  • kotlin

1

Вопрос на английском SO

Способ №1

button. setOnClickListener {
    // Do some work here
}

Способ №2

button.setOnClickListener(object : View.OnClickListener {
    override fun onClick(view: View?) {
        // Do some work here
    }
})

Способ №3

button.setOnClickListener(View.OnClickListener { view ->
    // Do some work here
})

Способ №4

class MainActivity : AppCompatActivity(), View.OnClickListener{
    lateinit var button : Button
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button = findViewById(R.id.button1)
        button.setOnClickListener(this)
    }
    override fun onClick(view: View?) {
        when(view?.id){
            R.id.button1->{
                // do some work here
            }
        }
    }
}

Способ №5

class MainActivity : AppCompatActivity(){
    lateinit var button : Button
    override fun onCreate(savedInstanceState: Bundle?) {
        super. onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button = findViewById(R.id.button1)
        button.setOnClickListener(listener)
    }
    val listener= View.OnClickListener { view ->
        when (view.getId()) {
            R.id.button1 -> {
                // Do some work here
            }
        }
    }
}

p.s. ответ — общий

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

aria-pressed — Доступность | MDN

В этой статье

  • Описание
  • Значения
  • ARIAMIXIN API
  • Связанные роли
  • Спецификации
  • См. Также

ARIA-Pressed ATTRIBUT

Добавление aria-pressed к элементу с ролью кнопки превращает кнопку в кнопку-переключатель. прессованная ария 9Атрибут 0020 актуален только для кнопок-переключателей. Он представляет текущее «нажатое» состояние кнопки.

Значение "tri-state", что означает, что значение может быть установлено на

true , false , смешанный или undefined значений. В случае aria-pressed , как и для большинства типов значений с тремя состояниями, значением по умолчанию является undefined .

Кнопки-переключатели требуют полного цикла нажатия и отпускания для изменения их значения. Однократное нажатие и отпускание изменяет значение на 9.0019 верно . Если ее снова нажать и отпустить, значение снова изменится на false .

Значение , смешанное с , означает, что значения более чем одного элемента, управляемого кнопкой, не имеют одинакового значения.

Не изменять содержимое метки переключателя при изменении состояния. Если метка кнопки говорит «пауза», не меняйте ее на «воспроизведение» при нажатии. В этом примере, когда нажатое состояние истинно, метка остается «Пауза», поэтому программа чтения с экрана скажет что-то вроде «Кнопка переключения паузы нажата».

 
 

Если вы хотите, чтобы метка переключалась между «Пауза» и «Воспроизведение», не используйте aria-pressed .

Первое правило использования ARIA: «Если вы можете использовать нативную функцию с уже встроенной семантикой и поведением, которые вам нужны, вместо того, чтобы перепрофилировать элемент и добавлять роль, состояние или свойство ARIA, чтобы сделать его доступным, тогда сделайте это. .» Если мы используем собственную семантику HTML с

Автор записи

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

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