可见性不变

问题描述 投票:0回答:1

我的应用程序中有两个视图,我需要使用 OnClick 事件更改“GONE”和“VISIBLE”之间的可见性:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_account);

    findViewById(R.id.buttonTerminarSessao).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("Test", "Test!");
            findViewById(R.id.blackscreen).setVisibility(View.VISIBLE);
            findViewById(R.id.boxTerminarSessao).setVisibility(View.VISIBLE);
        }
    });
}

我得到了日志,但可见性保持不变

我尝试为每个元素创建变量,检查元素是否位于其他元素后面,尝试使用其他按钮的 OnClick 事件,并尝试使用函数来更改可见性。我成功完成这项工作的唯一方法是使用动画从“消失”变为“可见”。这是 XML 文件:



<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.motion.widget.MotionLayout 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:id="@+id/motion_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layoutDescription="@xml/activity_account_scene"
    tools:context=".AccountActivity">

    <androidx.cardview.widget.CardView
        android:id="@+id/boxTerminarSessao"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:visibility="gone"
        app:cardCornerRadius="15dp"
        app:cardElevation="32dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="h, 1:1"
        app:layout_constraintEnd_toStartOf="@id/vert_2ProfileGuideline"
        app:layout_constraintStart_toEndOf="@id/vert_1ProfileGuideline"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/terminarSessaoText"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:elevation="2dp"
                android:gravity="center"
                android:text="Terminar Sessão?"
                android:textSize="13dp"
                app:layout_constraintBottom_toTopOf="@id/boxTerminarSessaoGuideline"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <Button
                android:id="@+id/confirmar"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:backgroundTint="@color/white"
                android:insetTop="0dp"
                android:insetBottom="0dp"
                android:text="Confirmar"
                android:textColor="@color/black"
                android:textSize="10dp"
                app:elevation="0dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/cancelar" />

            <Button
                android:id="@+id/cancelar"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:backgroundTint="@color/white"
                android:insetTop="1dp"
                android:insetBottom="1dp"
                android:text="Cancelar"
                android:textColor="#FF0000"
                android:textSize="10dp"
                app:elevation="0dp"
                app:layout_constraintBottom_toTopOf="@id/confirmar"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/boxTerminarSessaoGuideline" />


            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/boxTerminarSessaoGuideline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.5" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.cardview.widget.CardView>

    <ImageView
        android:id="@+id/blackscreen"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:alpha="0.3"
        android:background="@color/black"
        android:elevation="30dp"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.cardview.widget.CardView
        android:id="@+id/cardView2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        app:cardBackgroundColor="@color/colorPrimaryDark"
        app:cardCornerRadius="-1dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:weightSum="100">


            <ImageView
                android:id="@+id/especialidadesButton"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical|start"
                android:layout_weight="20"
                android:clickable="true"
                app:srcCompat="@drawable/especialidadesblankdef"
                app:tint="@color/white" />

            <ImageView
                android:id="@+id/marcacoesButton"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_gravity="center"
                android:layout_weight="20"
                android:clickable="false"
                app:srcCompat="@drawable/marca__esdef"
                app:tint="@color/white" />

            <ImageView
                android:id="@+id/mainMenuButton"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical|start"
                android:layout_weight="20"
                android:clickable="true"
                app:srcCompat="@drawable/logodef"
                app:tint="@color/white" />

            <ImageView
                android:id="@+id/localizacaoButton"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical|end"
                android:layout_weight="20"
                android:clickable="true"
                app:srcCompat="@drawable/mapablankdef"
                app:tint="@color/white" />

            <ImageView
                android:id="@+id/utilizadorButton"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_gravity="center_vertical|end"
                android:layout_weight="20"
                android:clickable="true"
                app:srcCompat="@drawable/personalblank_icon"

                app:tint="@color/white" />
        </LinearLayout>
    </androidx.cardview.widget.CardView>


    <androidx.cardview.widget.CardView
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:cardCornerRadius="10dp"
        app:layout_constraintDimensionRatio="h, 1:0.15"
        app:layout_constraintEnd_toStartOf="@id/vert_2ButtonGuideline"
        app:layout_constraintStart_toEndOf="@id/vert_1ButtonGuideline"
        app:layout_constraintTop_toBottomOf="@id/horz_1ButtonGuideline">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Perfil"
            android:textSize="22dp"
            android:textStyle="bold" />
    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:cardCornerRadius="10dp"
        app:layout_constraintDimensionRatio="h, 1:0.15"
        app:layout_constraintEnd_toStartOf="@id/vert_2ButtonGuideline"
        app:layout_constraintStart_toEndOf="@id/vert_1ButtonGuideline"
        app:layout_constraintTop_toBottomOf="@id/horz_2ButtonGuideline">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text=""
            android:textSize="22dp"
            android:textStyle="bold" />
    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/button3"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:cardCornerRadius="10dp"
        app:layout_constraintDimensionRatio="h, 1:0.15"
        app:layout_constraintEnd_toStartOf="@id/vert_2ButtonGuideline"
        app:layout_constraintStart_toEndOf="@id/vert_1ButtonGuideline"
        app:layout_constraintTop_toBottomOf="@id/horz_3ButtonGuideline">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Definições"
            android:textSize="22dp"
            android:textStyle="bold" />
    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/button4"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:cardCornerRadius="10dp"
        app:layout_constraintDimensionRatio="h, 1:0.15"
        app:layout_constraintEnd_toStartOf="@id/vert_2ButtonGuideline"
        app:layout_constraintStart_toEndOf="@id/vert_1ButtonGuideline"
        app:layout_constraintTop_toBottomOf="@id/horz_4ButtonGuideline">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Ajuda"
            android:textSize="22dp"
            android:textStyle="bold" />
    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/buttonTerminarSessao"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:cardCornerRadius="10dp"
        app:layout_constraintDimensionRatio="h, 1:0.15"
        app:layout_constraintEnd_toStartOf="@id/vert_2ButtonGuideline"
        app:layout_constraintStart_toEndOf="@id/vert_1ButtonGuideline"
        app:layout_constraintTop_toBottomOf="@id/horz_5ButtonGuideline">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Terminar Sessão"
            android:textSize="22dp"
            android:textStyle="bold" />
    </androidx.cardview.widget.CardView>


    <androidx.cardview.widget.CardView
        android:id="@+id/cardProfilePic"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:alpha="1"
        android:foreground="@drawable/personal_icon_grey"
        app:cardCornerRadius="2000dp"
        app:cardElevation="10dp"
        app:layout_constraintBottom_toTopOf="@id/horz_profileGuideline"
        app:layout_constraintDimensionRatio="w, 1:1"
        app:layout_constraintLeft_toRightOf="@id/vert_1ProfileGuideline"
        app:layout_constraintRight_toLeftOf="@id/vert_2ProfileGuideline">

    </androidx.cardview.widget.CardView>


    <com.google.android.material.card.MaterialCardView
        android:id="@+id/buttons"
        style="@style/CustomCardViewStyle"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:cardBackgroundColor="@color/colorPrimaryDark"
        app:layout_constraintBottom_toTopOf="@id/cardView2"
        app:layout_constraintTop_toBottomOf="@id/tabGuideline" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/tabGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.17" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/vert_1ProfileGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.3333" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/vert_2ProfileGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.6666" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/horz_profileGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.27" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/vert_1ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.08" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/vert_2ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.91" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/horz_1ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.35" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/horz_2ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.47" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/horz_3ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.59" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/horz_4ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.71" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/horz_5ButtonGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.83" />


</androidx.constraintlayout.motion.widget.MotionLayout>
java android xml visibility
1个回答
0
投票

将 xml 中

blackscreen
boxTerminarSessao
的初始可见性从
gone
更改为
invisible
将解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.