Как переключить видимость 1 или нескольких действий в Котлине - PullRequest
0 голосов
/ 05 июня 2019

Проблема довольно проста, у меня просто есть кнопка, которая генерирует и отображает число 1-9. Он состоит из кнопки, строки поиска и текстового представления.

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

    val rollButton = findViewById<Button>(R.id.rollButton)
    val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
    val seekBar = findViewById<SeekBar>(R.id.seekBar)

    seekBar.setVisibility(View.INVISIBLE)
    rollButton.setVisibility(View.INVISIBLE)
    resultsTextView.setVisibility(View.INVISIBLE)
package com.example.randomizer

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.SeekBar
import android.widget.TextView
import android.widget.VideoView
import java.util.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val rollButton = findViewById<Button>(R.id.rollButton)
        val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
        val seekBar = findViewById<SeekBar>(R.id.seekBar)
        seekBar.setVisibility(View.INVISIBLE)
        rollButton.setVisibility(View.INVISIBLE)
        resultsTextView.setVisibility(View.INVISIBLE)

        rollButton.setOnClickListener {
            val rand = Random().nextInt(seekBar.progress)
            resultsTextView.text = rand.toString()
            if rand == 9)

        }    
    }
}

Ответы [ 2 ]

0 голосов
/ 05 июня 2019
val rollButton = findViewById<Button>(R.id.rollButton)
val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
val seekBar = findViewById<SeekBar>(R.id.seekBar)

seekBar.setVisibility(View.INVISIBLE)
rollButton.setVisibility(View.INVISIBLE)
resultsTextView.setVisibility(View.INVISIBLE)

кстати, вам не нужно делать fineViewById в kotlin, вы можете импортировать их напрямую с помощью синтетики.

fun hideViews() {
    rollButton.visibility = View.GONE
    ...
    ...
}
fun showViews() {
    rollButton.visibility = View.VISIBLE
    ...
    ...
}
0 голосов
/ 05 июня 2019

Просто используйте if else для переключения видимости вида

fun View.toggleVisibility() {
    if (this.isVisible()) {
        this.visibility = View.INVISIBLE
    } else {
        this.visibility = View.VISIBLE
    }
}

затем вызовите эту функцию

seekBar.toggleVisibility()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...