首页 > 解决方案 > 如何修复在 AndroidStudio 活动中显示但不在模拟器/设备中显示的片段

问题描述

在进行此活动之前,我有另一个活动,我使用片段和导航组件很好,但该活动有一个空布局,只包含 <fragment,这个更复杂,它有一个来自左侧的导航视图(我已经关闭在下图中)还有一个自定义的“工具栏”(它是一个作为工具栏的 RelativeLayout,但它不属于 Toolbar 类,在这个问题上应该没关系)。

所以在这个活动中,当我使用 <fragment 时,片段确实显示在 AndroidStudio 预览中但不在活动中,这是一个演示: 在此处输入图像描述

以下是相关代码:

<androidx.drawerlayout.widget.DrawerLayout
    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="600dp"
    android:background="@drawable/bg_gray"
    android:layout_gravity="center_horizontal"
    android:id="@+id/drawerLayout"
    android:fitsSystemWindows="true"
    android:layout_height="match_parent"
    tools:context=".MainActivity">




    <RelativeLayout
        android:layout_width="600dp"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <include
            layout="@layout/toolbar"
            android:layout_alignParentTop="true"
            android:layout_marginTop="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            />


        <fragment
            android:id="@+id/navHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:name="androidx.navigation.fragment.NavHostFragment"
            app:navGraph="@navigation/main_nav"
            />

    </RelativeLayout>

如果我将任何其他片段放入片段确实出现的活动布局中,我认为问题是由特定片段引起的。这个片段很特别,因为其中大约一半由于动画而超出了手机的范围,但这仍然不能解释为什么它在 AndroidStudio 中正确显示。这是片段布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="600dp"
    android:layout_gravity="center"
    android:layout_height="match_parent"
    tools:context=".MainActivity">



    <View
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="@drawable/mainmenu_circle"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="-100dp"
        />



    <RelativeLayout
        android:id="@+id/rotatingView"
        android:layout_width="1000dp"
        android:layout_height="500dp"
        android:layout_marginBottom="-250dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="@drawable/round_view"
        android:clickable="true"
        >

        <Button
            android:id="@+id/button1"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_centerHorizontal="true"
            android:background="@drawable/green_rectangle_button"
            android:text="10"
            android:textColor="@android:color/white"
            />

        <Button
            android:id="@+id/button2"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:rotation="45"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_marginEnd="115dp"
            android:layout_marginTop="55dp"
            android:background="@drawable/green_rectangle_button"
            android:text="20"
            android:textColor="@android:color/white"
            />




        <Button
            android:id="@+id/button3"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            android:layout_marginEnd="60dp"
            android:rotation="90"
            android:background="@drawable/green_rectangle_button"
            android:text="30"
            android:textColor="@android:color/white"
            />

        <Button
            android:id="@+id/button4"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_marginBottom="55dp"
            android:layout_marginEnd="115dp"
            android:rotation="135"
            android:background="@drawable/green_rectangle_button"
            android:text="40"
            android:textColor="@android:color/white"
            />

        <Button
            android:id="@+id/button5"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="0dp"
            android:rotation="180"
            android:background="@drawable/green_rectangle_button"
            android:text="50"
            android:textColor="@android:color/white"
            />

        <Button
            android:id="@+id/button6"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:layout_marginBottom="55dp"
            android:layout_marginStart="118dp"
            android:rotation="225"
            android:background="@drawable/green_rectangle_button"
            android:text="60"
            android:textColor="@android:color/white"
            />

        <Button
            android:id="@+id/button7"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_alignParentStart="true"
            android:background="@drawable/green_rectangle_button"
            android:layout_marginStart="60dp"
            android:rotation="270"
            android:layout_centerVertical="true"
            android:text="70"
            android:textColor="@android:color/white" />


        <Button
            android:id="@+id/button8"
            android:layout_width="100dp"
            android:layout_height="125dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true"
            android:layout_marginStart="115dp"
            android:layout_marginTop="55dp"
            android:rotation="315"
            android:background="@drawable/green_rectangle_button"
            android:text="80"
            android:textColor="@android:color/white"
            />



    </RelativeLayout>

</RelativeLayout>

这是它的外观: 有问题的片段

标签: androidxmlandroid-studioandroid-layoutandroid-fragments

解决方案


推荐阅读