Не удается вызвать метод setVisibility при попытке показать / показать мой LinearLayout - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь показать LinearLayout при нажатии кнопки. Я не могу вызвать метод menuLayout.setVisibility(menuLayout.VISIBLE), каждый раз получаю сообщение об ошибке. Он просит преобразовать его в Kotlin: menuLayout.visibility = menuLayout.VISIBLE, но он все равно не работает.

ExamActivity.kt

import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Button
import android.widget.LinearLayout
import kotlinx.android.synthetic.main.activity_exam.*

class ExamActivity : AppCompatActivity() {

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

        val menuLayout: LinearLayout = this.LinearLayoutMenu

        val menuBtn: Button = this.menuBtn

        menuBtn.setOnClickListener {
            menuLayout.visibility = menuLayout.VISIBLE
            menuLayout.setVisibility(menuLayout.VISIBLE)
        }
    }
}

activity_exam.xml

<android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ExamActivity"
        android:background="@color/colorGrayBgd">
    <LinearLayout
            <-- hidden to save time -->
    </LinearLayout>
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" android:id="@+id/LinearLayoutMenu"
            android:layout_marginHorizontal="24dp"
            android:weightSum="3"
            android:gravity="center" android:visibility="gone" tools:layout_editor_absoluteX="24dp">
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="2"
                android:gravity="center"
                android:weightSum="100">
            <TextView
                    android:text="PAUSED"
                    android:layout_width="match_parent"
                    android:layout_height="0dp" android:id="@+id/titleTextView"
                    android:layout_weight="20"
                    android:textSize="46dp"
                    android:gravity="center"/>
            <View
                    android:layout_width="match_parent"
                    android:layout_height="0dp" android:id="@+id/separatorView"
                    android:layout_weight="3"
                    android:background="@android:color/black"/>
            <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="0dp" android:id="@+id/LinearLayoutTimeQuestionNumber"
                    android:layout_weight="15">
                <TextView
                        android:text="Time Remaining"
                        android:layout_width="0dp"
                        android:layout_height="match_parent" android:id="@+id/timeTextView" android:layout_weight="1"
                        android:textSize="16dp"
                        android:gravity="center"/>
                <TextView
                        android:text="Questions Remaining"
                        android:layout_width="0dp"
                        android:layout_height="match_parent" android:id="@+id/questionNumberTextView"
                        android:layout_weight="1"
                        android:textSize="16dp"
                        android:gravity="center"/>
            </LinearLayout>
            <Button
                    android:text="Report Question"
                    android:layout_width="match_parent"
                    android:layout_height="0dp" android:id="@+id/reportQuestion"
                    android:layout_weight="20"
                    android:textSize="24dp"/>
            <Button
                    android:text="Quit"
                    android:layout_width="match_parent"
                    android:layout_height="0dp" android:id="@+id/quitButton"
                    android:layout_weight="20"
                    android:textSize="24dp"/>
            <Button
                    android:text="Resume"
                    android:layout_width="match_parent"
                    android:layout_height="0dp" android:id="@+id/resumeButton"
                    android:layout_weight="20"
                    android:textSize="24dp"/>
        </LinearLayout>
    </LinearLayout>
</android.support.constraint.ConstraintLayout>

Я ожидаю, что для LinearLayoutMenu будет установлено значение visible, но мой код не будет работать.

Ответы [ 2 ]

3 голосов
/ 15 апреля 2019

используйте menuLayout.visibility=View.VISIBLE для видимого и menuLayout.visibility=View.GONE для невидимого или скрытого

0 голосов
/ 15 апреля 2019

У вас есть несколько различных файлов макета.Вы должны дать конкретный файл макета, который вы хотите с идентификатором, и я вижу, что вы сделали это.Удалите атрибут android: visiility = "away" из родительского линейного макета.

...