Кнопки не работают снова после нажатия
Код: MainActivity:
tasks.setOnClickListener() { tasks_window.visibility = View.VISIBLE }
home.setOnClickListener() { user_window.visibility = View.VISIBLE }
east.setOnClickListener() { feed_window.visibility = View.VISIBLE }
news.setOnClickListener() { news_window.visibility = View.VISIBLE }
dailybook.setOnClickListener() { dailybook_window.visibility = View.VISIBLE }
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
if (tasks_window.visibility == View.VISIBLE)
dailybook_window.visibility = View.GONE
feed_window.visibility = View.GONE
news_window.visibility = View.GONE
user_window.visibility = View.GONE
if (dailybook_window.visibility == View.VISIBLE)
tasks_window.visibility = View.GONE
feed_window.visibility = View.GONE
news_window.visibility = View.GONE
user_window.visibility = View.GONE
if (feed_window.visibility == View.VISIBLE)
tasks_window.visibility = View.GONE
dailybook_window.visibility = View.GONE
news_window.visibility = View.GONE
user_window.visibility = View.GONE
if (news_window.visibility == View.VISIBLE)
tasks_window.visibility = View.GONE
feed_window.visibility = View.GONE
dailybook_window.visibility = View.GONE
user_window.visibility = View.GONE
if (user_window.visibility == View.VISIBLE)
tasks_window.visibility = View.GONE
feed_window.visibility = View.GONE
news_window.visibility = View.GONE
dailybook_window.visibility = View.GONE
Ответы (1 шт):
Автор решения: Circassian
→ Ссылка
Такое ощущение, что вы пришли из пайтона. В котлине, если нет фигурных скобок, то при верности условия выполнится только следующая за условием строка. Поэтому, все строки, выделенные табуляцией, нужно включать в фигурные скобки.
Рассмотрим первый блок
Вместо этого:
if (tasks_window.visibility == View.VISIBLE)
dailybook_window.visibility = View.GONE
feed_window.visibility = View.GONE
news_window.visibility = View.GONE
user_window.visibility = View.GONE
Нужно сделать так:
if (tasks_window.visibility == View.VISIBLE) {
dailybook_window.visibility = View.GONE
feed_window.visibility = View.GONE
news_window.visibility = View.GONE
user_window.visibility = View.GONE
}
Потому-что если условие if (tasks_window.visibility == View.VISIBLE) верное, выполнится только следующая строка:
dailybook_window.visibility = View.GONE
А остальные 3 строки будут выполняться ВСЕГДА!