В моем приложении я хочу, чтобы мои спиннеры clickable=true
или clickable=false
выполнялись в разное время. Но, несмотря на установку атрибута как в инспекторе атрибутов, так и в коде, Android Studio просто не уважает атрибут clickable
.
(Я НЕ хочу включать / отключать счетчики, потому что это меняет способ их отображения, ie. Становится серым.)
Вот простой проект, который нужно показать ....
activity_main. xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Spinner
android:id="@+id/spinnerA"
android:layout_width="0dp"
android:layout_height="50dp"
android:clickable="false"
android:entries="@android:array/organizationTypes"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Spinner
android:id="@+id/spinnerB"
android:layout_width="0dp"
android:layout_height="50dp"
android:entries="@android:array/imProtocols"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinnerA" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt
package com.heewhack.clickablespinners
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
spinnerB.isClickable = false
}
}
Кажется, это основная ошибка в Android Studio ...
Вопросы:
- Может ли кто-нибудь подтвердить мои выводы или, еще лучше, показать мне, что мне не хватает?
- Кто-нибудь знает обходной путь?
- Может Я меняю способ отображения включенных / отключенных элементов?
- Как мне сообщить об этой ошибке, если это действительно ошибка?