首页 > 解决方案 > 布局大于设备屏幕会导致应用崩溃

问题描述

我目前正在开发的移动应用程序存在问题。它背后的想法是显示来自传递对象的各种变量的值。由于我需要向布局 xml 文件中添加越来越多的对象以显示所有内容,因此预览已停止显示除操作栏之外的任何对象,并尝试使用此布局启动活动会使应用程序崩溃。

我有一种感觉,这可能是由于布局大于虚拟设备屏幕,尽管可能还有另一个我完全不知道的原因。在这件事上的任何帮助将不胜感激。此活动当前使用相对布局,是否可以解决将相对布局包装在 Scrollview 中以使活动可滚动的问题?

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Name"
    android:id="@+id/RequestNameTextView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:id="@+id/RequestNameDisplay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestNameTextView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"  />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Student ID"
    android:id="@+id/RequestStudentIDTextView"
    android:layout_below="@+id/RequestNameDisplay"/>

<TextView
    android:id="@+id/RequestStudentIDDisplay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestStudentIDTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"  />

<TextView
    android:id="@+id/RequestLocationTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestStudentIDDisplay"
    android:text="Location"
    android:textAppearance="?android:attr/textAppearanceMedium"
     />

<TextView
    android:id="@+id/RequestLocationDisplay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestLocationTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"  />

<TextView
    android:id="@+id/RequestProblemTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestLocationDisplay"
    android:text="Problem Description"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

<TextView
    android:id="@+id/RequestProblemDisplay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestProblemTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"  />

<TextView
    android:id="@+id/RequestStatusTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestProblemDisplay"
    android:text="Current Status"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/RequestStatusDisplay"
    android:layout_below="@+id/RequestStatusTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"/>

<TextView
    android:id="@+id/RequestAssignmentTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestStatusDropDown"
    android:text="Assigned To"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/RequestAssignmentDisplay"
    android:layout_below="@+id/RequestAssignmentTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"/>

<TextView
    android:id="@+id/RequestStatusUpdateTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestAssignmentDisplay"
    android:text="Update Status to:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/RequestStatusDropDown"
    android:layout_below="@+id/RequestStatusUpdateTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"/>

<TextView
    android:id="@+id/RequestAssignmentUpdateTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RequestStatusDropDown"
    android:text="Assign Request To:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/RequestAssignmentDropDown"
    android:layout_below="@+id/RequestAssignmentUpdateTextView"
    android:layout_margin="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"/>

<Button
    android:id="@+id/RequestSaveChangesButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:text="Save Changes" />
</RelativeLayout>

标签: javaandroidxmllayout

解决方案


这是因为您的相对布局具有循环依赖项。从 RequestAssignmentTextView 到 RequestStatusDropDown,你有一个循环依赖。只需更改 RequestAssignmentTextView 的“下方”元素即可避免此错误。


推荐阅读