Изображение не становится невидимым - PullRequest
0 голосов
/ 04 сентября 2018

Я сделал 2 ImageViews друг на друга. Я хочу переключить изображение сверху видимым и невидимым, когда я нажимаю на флажок. Но оно не превращается обратно в невидимое, как только оно становится видимым. Я тоже пытался использовать View.GONE, но затем он исчезает, не возвращаясь к видимому.

Вот мой код

    val btn_click_me = findViewById(R.id.checkBox) as Button
    btn_click_me.setOnClickListener {
        val imageon = findViewById(R.id.imageViewOn) as ImageView
        if(imageon.visibility == View.VISIBLE) {
            imageon.setVisibility(View.INVISIBLE)
        }
        if(imageon.visibility == View.INVISIBLE){
            imageon.visibility = View.VISIBLE
        }
    }

мой код xml:

<ImageView
    android:id="@+id/imageViewOff"
    android:layout_width="37dp"
    android:layout_height="34dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:visibility="visible"
    app:srcCompat="@drawable/haltestelleoff" />

<ImageView
    android:id="@+id/imageViewOn"
    android:layout_width="37dp"
    android:layout_height="34dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:visibility="invisible"
    app:srcCompat="@drawable/haltestelleon" />

<CheckBox
    android:id="@+id/checkBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toStartOf="@id/imageViewOff"
    android:text="" />

мой макет xml - это Относительный макет.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

посмотрите здесь:

if(imageon.visibility == View.VISIBLE) {
        imageon.setVisibility(View.INVISIBLE)
}
if(imageon.visibility == View.INVISIBLE){
        imageon.visibility = View.VISIBLE
}

Здесь сначала вы делаете его невидимым, а во-вторых, если вы проверяете и снова делаете его видимым! измените его на if else

0 голосов
/ 04 сентября 2018

Пожалуйста, проверьте условие. Это должно быть if else, а не if if условие.

  if(imageon.visibility == View.VISIBLE) {
        imageon.setVisibility(View.INVISIBLE)
    }else {
        imageon.setVisibility(View.VISIBLE)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...