首页 > 解决方案 > 如何在一个屏幕上使用两个相对布局?

问题描述

我不能使用两种相对布局(一个在另一个)。我的应用程序没有启动。它一直在停止。我正在使用物理设备(Samsung Galaxy On Max)从 android studio 运行我的应用程序。

XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/Next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="161dp"
        android:layout_marginTop="340dp"
        android:layout_marginEnd="162dp"
        android:onClick="Next"
        android:text="Next"
        android:visibility="visible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/newLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="invisible">

        <TextView
            android:id="@+id/nextText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="132dp"
            android:layout_marginTop="354dp"
            android:layout_marginEnd="132dp"
            android:background="#F30808"
            android:text="There you Go!"
            android:textColor="#0B0A0A"
            android:textSize="24sp"
            android:visibility="visible"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

Java 文件:

package com.example.twolayouts;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView nextText;
    Button Next;
    RelativeLayout newLayout;

    public void Next(View view)
    {
        Next.setVisibility(View.INVISIBLE);
        newLayout.setVisibility(View.VISIBLE);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        nextText=(TextView)findViewById(R.id.nextText);
        Next=(Button)findViewById(R.id.Next);
        newLayout=(RelativeLayout)findViewById(R.id.newLayout);
    }
}

标签: javaandroid

解决方案


为什么要创建相对布局的对象,而 xml 中的布局是约束布局。

试试这个 :

public class MainActivity extends AppCompatActivity {
TextView nextText;
Button Next;
ConstraintLayout newLayout;

public void Next(View view)
{
    Next.setVisibility(View.INVISIBLE);
    newLayout.setVisibility(View.VISIBLE);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    nextText=(TextView)findViewById(R.id.nextText);
    Next=(Button)findViewById(R.id.Next);
    newLayout=(ConstraintLayout)findViewById(R.id.newLayout);
}
}

您应该尝试查看您的 logcat 窗口,它将帮助您找出您面临的错误。


推荐阅读